C++相关
- 多态的理解
- 虚函数、虚函数表
- 声明数组大小超过内存大小会怎样
int a[5]; cout << a[5] << endl;
会有什么结果int a[5]; a[5] = 1;
会有什么结果- 内存泄露是什么,如何排查问题及解决
- 浅拷贝与深拷贝
- 知道哪些设计模式
- map 底层采用什么数据结构
- map 和 unorder_map 的区别
操作系统
- 进程间通信
- 进程、线程区别
- 进程调度算法
- 协程是什么
- IO多路复用
- 一个exe文件包含什么内容
- 虚拟内存
- 零拷贝
- 栈和堆的区别
计算机网络
- 三次握手、四次挥手
- TCP如何保证通信的可靠性
- 等多久对触发超时重传
- 具体讲讲拥塞控制
- time wait的2MSL有什么用
- time wait状态过多有什么问题
- 用过Linux吗,网络是怎么配置的,讲讲DHCP
- 输入URL后发生了什么
- HTTP和HTTP的区别
- Session和Cookie的区别
- Get和Post的区别
- ping用的什么协议,具体讲讲ICMP
- TCP和UDP的区别
- 粘包问题怎么解决
数据库
- 用过什么索引
- 讲讲最左前缀原则
- 聚簇索引和非聚簇索引的区别
- 索引采用的数据结构
- InnoDB和Myisam的区别
- 事务的特性,有哪些隔离级别
算法
- 关键词分割字符串
- Top K问题
- 判断是否是镜像二叉树
- 使链表偶数位结点在前,奇数位结点在后(如 1 -> 2 -> 3 -> 4 -> 5 变成 2 -> 4 -> 1 -> 3 -> 5)
- 跳台阶
- 最小编辑距离
- 判断4个数字是否满足24点
- 只由1、0、-1组成的数组,使全部的1在数组最前、全部的-1在数组最后(在原数组上修改)
- 反转链表
- 为什么二分查找时间复杂度是 log2nlog_2nlog2n,怎么算的
- 合并能合并的数组,如 [[1, 2], [4, 6], [5, 8]] 合并为 [[1, 2], [4, 8]]
- 判断int32的数字是否是回文数(1. 考虑负数; 2. 考虑溢出问题)
- 1~n中k出现了几次(n为正整数,k为[0, 9])(两种题型,如题型1:55中5只算出现了一次;题型2:55中5出现了2次)