操作系统
进程线程协程
- 三者的概念
- 三者的区别
- 三者的通信方式
- 三者的应用场景
- 在 linux 系统中,三者是如何管理的?如用了什么数据结构,如何调度?
- 有写过相关代码的话,各自的 api 如何调用?
- select,poll,epoll
- fork,copy-on-write (COW)
内存
死锁与避免
锁
- 都有哪些锁
- 悲观锁、乐观锁
- 自旋锁
- 重量级锁、轻量级锁
- compare and set (CAS)
- 读写锁概念、优劣、实现、适用场景、优化
用户态与内核态
计算机网络
- 三次握手与四次挥手
- 三次握手的原因
- 四次握手的原因
- 长链接
- HTTP2.0
- HTTP 状态码
- HTTPS、对称加密、非对称加密、RSA 的大概原理
- 负载均衡怎么做
- 四层负载均衡和七层负载均衡
- 常问的:从输入一个网址到展示网页的全过程
- 计算机网络分为几层,每层都是什么
- 正常的连接,服务器断电了会发生什么;服务器主动关机呢?
- get 与 post 区别
基本数据结构与算法
- 链表、快慢指针
- 树、递归模式的三种遍历、非递归的三种遍历、从先序和中序遍历恢复
- 平衡二叉树、求深度、搜索二叉树、红黑树(概念)
- 数的路径和、最近共同祖先、右视图、按层遍历
- 贪心
- 动态规划:求编辑距离、背包问题
- 回溯
- 字符串匹配
- 各种排序算法与优化,尤其是快排的优化
- 桶排序
- 生成素数
- 并查集
- 前缀树
- 排列组合
- 摩尔投票法
- 队列、优先队列
- 大堆、小堆
- 二分查找
设计模式
数据库
- 索引的概念,实现,有哪几种索引,什么时候索引会失效
- 三大范式
- 事务的 ACID 与四种隔离级别
- 增删改查的 sql 如何写
- 什么是连接池
- 从提交一个 sql 语句,到结果返回,mysql 做了什么
- 数据库负载过重怎么办?如何分库分表?
- 几种 join
- 给数据表增加一列,mysql 是如何处理的
- redis
其他
还有很多东西偶尔也会问到,以后工作也会用
- 如何产生随机数
- 微服务,如何划分微服务
- 服务治理
- service mesh
- 泳道
- k8s 有哪些组件,创建一个 pod 的过程
- mq
- 网站如何限流、熔断、削峰
- linux 命令:ps、awk、ulimit、top
以上内容仅根据自身面试经历总结形成,并不完备,仍需要自己总结并有所取舍