每场面试都必须认真面对,因为每一场面试都是一段经验。面试面多了,所谓的经验就有了!
一、常见算法和数据结构
1、数组、链表、队列、栈的各种操作(性能,场景)
2、各类排序算法以及复杂度分析(快排、归并、堆),不同排序算法的稳定性
3、理解并可以分析时间和空间复杂度。
4、动态规划、贪心。
5、回溯算法
6、二叉树、前中后虚(图考察的很少,只有笔试偶尔遇到)
7、DFS、BFS 算法
8、单调栈、单调队列
二、操作系统
1、进程通信 IPC(几种方式),进程与线程定义与区别
2、进程调度算法、磁盘扫描算法
3、虚拟内存、页面置换算法
4、内核态和用户态的转换的条件、中断、系统调用
5、互斥与死锁
6、linux 常用命令(问的时候都会给具体某一个场景)
7、Linux 的 IO 模型 BIO/NIO/AIO、 IO 多路复用
8、Linux 内核 select poll epoll、边缘触发和水平触发
9、僵尸进程和孤儿进程
三、数据库
1、索引(包括分类及优化方式,失效条件,底层结构 B 树、B + 树的区别优缺点)
2、优化(explain,慢查询,show profile)、数据库的范式
3、辅助索引、主键索引、聚簇索引、非聚簇索引、索引回表、索引