一、算法题
一面:
1. lc 里最长上升子序列的变形题
2. 实现输入英文单词联想的功能
二面:
1.矩阵旋转,要求空间复杂度 O(1)
2.无序的数组的中位数。要求时间复杂度尽可能的小
二、计算机网络
- tcp 怎么保证数据包有序
- tcp 和 udp 的异同
- tcp 怎么保证可靠性
- tcp 中拥塞避免和流量控制机制
- tcp 四次挥手的详细解释
- 四次挥手之后为什么还要等待 2msl
- 浏览器从输入网址到显示出网页的全过程
- 滑动窗口机制的原理和理解
- Https 原理和实现
- cookie 和 session 的区别是什么
三、操作系统
- 进程和线程的区别
- 线程是什么呢?
- 进程切换与线程切换
- Linux 中五种 IO 模型
- 如何实现一个同步非阻塞的请求
- 实现进程同步的机制有什么
- 信号量的实现机制
- 共享锁和排他锁
- 实现一个读写锁
- 设计一个无锁队列
- 协程的原理
四、数据库
- 索引是什么
- 为什么要用 B+ 树(B+ 树的优缺点)
- B+索引和哈希索引的区别?
- B+ 树中叶子节点间的指针有什么用?
- 聚簇和非聚簇索引的区别?
- 非聚簇索引的查询都要回表吗?
- B+ 树和 AVL 树 B 树二叉搜索树有什么区别?
五、杂项
这一部分和项目比较相关。基本上项目中有什么或者面试官想到什么问什么,问了很多但是不通用。就只写一点。 - GIL 是什么
- 为什么会有?
- 有什么作用?
- 怎么规避它对于并行的影响?
六、语言相关
- Python 的内存管理机制
- 讲一下 Python GC 的原理和详细解释(分代,标记回收,内存划分)
- Python 中 static_method 、 class_mathod 、和普通 method 有什么区别
- 迭代器和生成器有什么区别?
- 生成器怎么使用?