八股文学习路线图
优先级图例
| 标记 | 含义 | 学习要求 |
|---|---|---|
| 🔴 重点 | 高频必考,必须能徒手写 + 讲清原理 | 优先吃透 |
| 🟡 进阶 | 中频,能说清思路与权衡即可 | 二轮复习 |
| 🟢 了解 | 低频/加分项,知道概念不深究 | 扫读即可 |
Top 20 高频知识点
| 排名 | 知识点 | 模块 |
|---|---|---|
| 1 | TCP 三次握手 / 四次挥手 | 计网 |
| 2 | GIL 是什么、怎么绕过 | Python |
| 3 | MVCC 原理 | MySQL |
| 4 | B+ 树索引 + 最左前缀 | MySQL |
| 5 | 缓存穿透 / 击穿 / 雪崩 | Redis |
| 6 | 进程 vs 线程 vs 协程 | 操作系统 |
| 7 | IO 多路复用 select/poll/epoll | 操作系统 |
| 8 | HTTP 版本演进 1.1→2→3 | 计网 |
| 9 | HTTPS 工作原理 + TLS 握手 | 计网 |
| 10 | 索引失效的 5 大场景 | MySQL |
| 11 | 装饰器原理与手写 | Python |
| 12 | asyncio 事件循环 + async/await | Python |
| 13 | 从输入 URL 到页面展示 | 计网 |
| 14 | 缓存与数据库双写一致性 | Redis |
| 15 | 深浅拷贝的区别与实现 | Python |
| 16 | 死锁四条件与预防 | 操作系统 |
| 17 | 红黑树 / B+ 树应用场景 | 数据结构 |
| 18 | 零拷贝原理(sendfile/mmap) | 操作系统 |
| 19 | Cookie / Session / Token 认证三兄弟 | 计网 |
| 20 | 限流、熔断、降级三件套 | 系统设计 |
TCP / UDP 基础
-
TCP 三次握手与四次挥手:状态流转、为什么是三次/四次、半连接队列 🔴 重点
-
TCP 可靠性机制:确认应答、超时重传、滑动窗口、流量控制、拥塞控制(慢启动/拥塞避免/快重传/快恢复)🔴 重点
-
TCP vs UDP:区别、适用场景、QUIC 如何绕开队头阻塞 🔴 重点
-
TIME_WAIT 的 2MSL 作用、粘包/拆包成因与解法 🟡 进阶
-
TCP 状态机、常见追问(同时打开/关闭、SYN Flood)🟢 了解
HTTP 协议
-
HTTP 状态码分类与高频码(301/302/304/401/403/404/500)🔴 重点
-
RESTful 语义:GET/POST/PUT/DELETE 的语义与幂等性 🔴 重点
-
HTTP 版本演进:1.0 → 1.1 → 2.0 → 3.0(QUIC) 的核心变化 🔴 重点
-
HTTPS 与 TLS 1.3 握手:对称/非对称加密、证书链、前向安全 🔴 重点
-
从输入 URL 到页面展示:DNS → TCP → TLS → 渲染全链路 🔴 重点
-
HTTP/2 多路复用 vs HTTP/1.1 队头阻塞 🟡 进阶
-
长连接 / 短连接 / 流水线 🟡 进阶
-
强缓存与协商缓存(Cache-Control / ETag / 304)🟡 进阶
Web 安全与跨域
-
同源策略、Cookie / Session / Token 认证三兄弟 🔴 重点
-
CORS 跨域:简单/预检请求、常见跨域解决方案(代理/JSONP/网关)🔴 重点
-
XSS / CSRF / SQL 注入的成因与防御 🔴 重点
-
对称加密 vs 非对称加密、HTTPS 中的混合加密 🟡 进阶
-
WebSocket 全双工通信、SSE 服务器推送 🟢 了解
-
DNS 解析过程、CDN 原理与调度 🟢 了解
进程 / 线程 / 协程
-
进程 vs 线程 vs 协程:资源、切换成本、适用场景 🔴 重点
-
进程间通信 7 种方式:管道/消息队列/共享内存/信号量/套接字等 🟡 进阶
-
线程同步与锁机制:互斥锁、读写锁、自旋锁、条件变量 🔴 重点
-
进程调度算法:FCFS / 时间片轮转 / 多级反馈队列 🟡 进阶
内存管理
-
虚拟地址到物理地址的翻译(分页/分段/段页式)🔴 重点
-
页面置换算法:FIFO / LRU / Clock 🔴 重点
-
缺页中断流程、请求分页 🟡 进阶
-
局部性原理与抖动(Thrashing)成因 🟡 进阶
-
malloc 底层:brk 与 mmap 的分工 🟢 了解
IO 模型
-
五种 IO 模型:阻塞 / 非阻塞 / IO 多路复用 / 信号驱动 / 异步 🔴 重点
-
IO 多路复用 select / poll / epoll 的区别与底层实现 🔴 重点
-
epoll 的 LT 与 ET 模式、就绪队列机制 🟡 进阶
-
零拷贝:sendfile / mmap / splice 如何减少拷贝次数 🟡 进阶
内核与系统
-
用户态与内核态:区别、切换成本、进入内核的三种方式(系统调用/中断/异常)🔴 重点
-
中断、系统调用、上下文切换 🟡 进阶
-
eBPF 概念与可观测性应用 🟢 了解
-
操作系统分类:批处理 / 分时 / 实时 / 分布式 🟢 了解
对象与内存
-
可变对象 vs 不可变对象:int/str/tuple 与 list/dict 的内存差异 🔴 重点
-
is 与 == 的区别:身份 vs 值、小整数池 🔴 重点
-
深浅拷贝:引用、浅拷贝、深拷贝的边界与手写实现 🔴 重点
函数与并发基础
-
装饰器原理:闭包 + 函数对象 + 语法糖,能手写带参装饰器 🔴 重点
-
GIL 是什么、对 CPU/IO 密集型的影响、如何绕过(多进程/协程/C 扩展)🔴 重点
-
迭代器与生成器:惰性求值、
yield状态挂起 🟡 进阶 -
闭包:变量捕获、延迟绑定陷阱 🟡 进阶
-
异常与上下文管理器(
with)🟢 了解
一、Python 并发(八股向)
-
asyncio 核心:事件循环、Task、协程调度、await 的本质 🔴 重点
-
生成器与协程的演进关系:从 yield 到 async/await 🟡 进阶
-
线程 / 进程 / 线程池 / 进程池的选型 🟡 进阶
-
asyncio.to_thread把阻塞调用 offload 到线程 🟢 了解
索引
-
B+ 树索引结构、为什么用 B+ 树而非 B 树/红黑树 🔴 重点
-
最左前缀原则、联合索引、覆盖索引 🔴 重点
-
索引失效的 5 大场景(隐式转换/函数/前导模糊/不等/or)🔴 重点
事务与锁
-
事务 ACID 与隔离级别、MVCC 多版本并发控制 🔴 重点
-
当前读 vs 快照读、Next-Key Lock 防幻读 🔴 重点
-
死锁的成因、检测与预防 🟡 进阶
日志与高可用
-
redo log / undo log / binlog 的职责与两阶段提交 🟡 进阶
-
主从复制、读写分离 🟢 了解
实战
- SQL 优化套路:explain、慢查询定位 🟡 进阶
数据结构与缓存
-
五大基础结构(String/Hash/List/Set/ZSet)与底层实现 🔴 重点
-
缓存穿透 / 击穿 / 雪崩的成因与对策(布隆过滤器/互斥锁/随机过期)🔴 重点
-
缓存与数据库双写一致性:先删后更、延迟双删、Canal 订阅 🔴 重点
持久化与分布式
-
RDB 与 AOF 的区别、混合持久化 🟡 进阶
-
主从 / 哨兵 / 集群、数据分片 🟡 进阶
-
分布式锁的 Redlock 争议与最佳实践 🟡 进阶
-
内存淘汰策略(LRU/LFU)、大 key 与热 key 治理 🟢 了解
四、FastAPI / Web 八股
-
FastAPI 核心:异步视图、依赖注入、Pydantic 校验 🔴 重点
-
认证与响应:JWT 签发校验、统一响应模型 🟡 进阶
-
数据库集成:SQLAlchemy 异步会话、连接池 🟡 进阶
-
性能与运维:生命周期、后台任务、限流 🟢 了解
五、设计模式
-
单例模式:线程安全实现、懒加载 🔴 重点
-
工厂模式 vs 策略模式:创建与行为的取舍 🟡 进阶
-
观察者模式(发布-订阅):事件解耦 🟡 进阶
-
MVC 与 MTV 架构分层思想 🟢 了解
六、分布式与系统设计(八股向)
-
Docker 与 docker-compose:镜像分层、容器隔离 🟡 进阶
-
微服务架构:服务拆分、注册发现、配置中心 🟡 进阶
-
Git 工作流:rebase / merge / stash / cherry-pick 的取舍 🟡 进阶
-
限流(令牌桶/漏桶)、熔断、降级三件套 🔴 重点
-
秒杀系统设计:库存扣减、防超卖、削峰 🟡 进阶
-
分布式事务:2PC / TCC / 消息最终一致 🟡 进阶
-
CAP 与 BASE 理论:一致性与可用性的权衡 🟡 进阶
-
Kubernetes 核心资源(Pod/Service/Deployment)🟢 了解
学习顺序
-
计算机网络 + 操作系统(Top20 中 1/7/8/9/13/16/18 属此)。
-
Python 基础与并发:GIL、装饰器、asyncio。
-
MySQL + Redis:八股与项目共用。
-
FastAPI + 设计模式 + 分布式系统设计。
-
冲刺:🔴 重点做口述 + 手撕,🟡 进阶做思路复述。