八股文 / 高频统计

2026 年 3–7 月高频后端八股统计

这份统计回答两个问题:最近几个月什么题反复出现,以及时间有限时应该先复习什么。它基于春季、夏季合集中的 3–7 月真实来源,不代表牛客全站绝对排名,但足以反映这批后端/AI 应用开发面经中的稳定考点。

统计口径

月份 来源组 代表公司/岗位
3 月 4 四维图新、神州信息、快手、腾讯后台
4 月 5 恒生、蚂蚁效能、网新、美团、Java 小厂
5 月 5 美团、京东、小红书、阿里国际、Java 小厂
6 月 12 小红书、字节、滴滴、嘉立创、PDD、华为、虾皮等
7 月 6 字节、滴滴、百度、拼多多、快手
合计 32 按公司/岗位/同篇多轮面经合并

统计规则:

  1. 同一来源帖内,同一规范主题最多计 1 次;连续追问不会重复加权。
  2. 同义题归一化。例如 B+ 树、联合索引和索引失效归为“索引与执行计划”。
  3. 缓存一致性与穿透/击穿/雪崩分别计数,因为考察目标和答题结构不同。
  4. Agent、LLM、RAG、Prompt 和模型训练题不进入后端八股统计。
  5. 纯算法手撕不进入主榜,单列在文末。

高频总榜

“来源数”是 32 个来源组中出现该主题的组数;“覆盖月”比单月次数更能说明题目是否稳定。

排名 规范主题 来源数 覆盖月 频次层级 常见问法
1 MySQL 索引与执行计划 7 4 最高频 B+ 树、联合索引、索引失效、慢 SQL
2 JVM/GC 与故障排查 7 4 最高频 可达性、分代、CMS/G1、Java 进程卡住
3 网络、HTTP 与 RPC 7 3 最高频 URL 链路、TCP、TLS、HTTP vs RPC、WebSocket
4 MQ 可靠性与积压 7 3 最高频 顺序、重复、丢失、lag、重试与死信
5 缓存与数据库一致性 6 3 最高频 Cache Aside、删除失败、延迟双删、版本覆盖
6 Redis 快与阻塞风险 5 4 跨月稳定 单线程、IO 多路复用、大 Key、慢命令
7 幂等与重复处理 5 4 跨月稳定 请求幂等、唯一键、重复消费、状态机
8 Java/C++ 锁与并发可见性 5 4 跨月稳定 synchronized、AQS、读写锁、volatile
9 缓存穿透、击穿与雪崩 5 3 跨月稳定 空值缓存、布隆过滤器、热点重建、TTL
10 ThreadLocal 4 4 跨月稳定 实现、泄漏、线程池复用、上下文传播
11 进程、线程与协程 4 3 高频 隔离、调度、切换成本、GIL
12 事务、隔离级别与 MVCC 4 3 高频 ACID、ReadView、undo/redo/binlog、2PC
13 限流、熔断与降级 4 3 高频 令牌桶、滑动窗口、过载保护、重试预算
14 HashMap/ConcurrentHashMap 4 2 集中高频 扩容、线程安全、CAS、锁粒度
15 分布式锁 3 1 单月集中 Redis、ZooKeeper、etcd、租约与续期
16 Spring 容器与代理 2 2 持续观察 AOP 失效、循环依赖、MVC 流程
17 线程池设计 2 2 持续观察 执行流程、有界队列、拒绝与动态调整

高频题应该答到哪一层

1. MySQL 索引:不要把“失效场景”背成语法黑名单

先讲 B+ 树如何减少页访问、聚簇与二级索引如何存储,再讲联合索引的排序顺序和回表。遇到函数、隐式转换、前导 % 或低选择性时,结论不是“一定不走索引”,而是优化器根据可用访问路径和成本选择。最后落到 EXPLAIN ANALYZE、实际行数和数据分布。

2. JVM/GC:从收集器名称升级到证据链

先分 Young GC、Mixed/Old GC 和 Full GC,再看分配速率、晋升、停顿、堆/元空间/直接内存。用连续 GC 日志、线程栈和堆快照定位,而不是一上来调大堆。CMS 的碎片和并发模式失败、G1 的 Region/Mixed GC 都要能联系到停顿目标。

3. MQ:可靠性必须覆盖完整链路

生产端要有确认、重试和幂等;Broker 要有副本与持久化;消费端在业务成功后提交,并用唯一事件 ID、唯一键或状态机处理重复;失败进入有限重试、死信和人工/自动对账。顺序只在分区内成立,扩消费者也受分区数约束。

4. 缓存一致性:先承认不一致窗口

Cache Aside 常用“更新数据库后删除缓存”,删除失败通过可靠重试或 CDC 补偿。旧请求回填可用版本号、短 TTL 或热点串行化控制。强一致业务应降低对缓存的依赖或把关键操作串行化,不能用“延迟双删”承诺绝对一致。

5. Redis:快不等于不会阻塞

内存、高效结构和 IO 多路复用解释平均延迟;大 Key、慢命令、热 Key、同步删除、fork 和网络带宽解释尾延迟。答案应包含发现手段和治理:慢日志、Key 采样、拆分、渐进操作、UNLINK、热点隔离。

6. 幂等:数据库约束才是最后防线

入口请求 ID 和 Redis 去重可以挡掉大部分重复,但并发正确性最终依赖业务唯一键、条件更新或状态机。消息消费还要把业务写入和处理记录放在同一事务,并允许崩溃后的安全重试。

7. 网络与 RPC:先纠正分类

HTTP 是协议,RPC 是调用抽象,RPC 完全可以运行在 HTTP/2 上。URL 链路题按 DNS → TCP/TLS → HTTP → 网关/服务/存储回答;实时通信再比较 SSE 和 WebSocket,并补充心跳、重连、消息序号和背压。

8. 线上故障:统一使用五步框架

止损:限流 / 熔断 / 降级 / 回滚
  -> 定位:变更时间线 + 指标 + Trace + 日志
  -> 修复:消除根因,控制重试与并发
  -> 验证:灰度 + 压测 + P95/P99
  -> 复盘:告警、容量基线、预案和演练

跨月趋势

趋势 观察 备考动作
基础题场景化 从“Redis 为什么快”追到大 Key、热 Key和阻塞影响 每个概念准备一个线上故障追问
一致性贯穿组件 MySQL、缓存、MQ 都在考重复、丢失和并发覆盖 用幂等、事务、重试、补偿串成一条链
排查题增加 慢 SQL、Java 卡住、MQ 积压、接口延迟飙升反复出现 记工具不够,要说指标顺序和判断依据
AI 岗仍考后端底座 Agent 面经中持续出现 Spring、Redis、MySQL、MQ AI 项目也要准备容量、状态和恢复设计
语言题更重边界 Java 并发之外出现 Go GMP/Channel、C++ 所有权 主语言深入,其他语言掌握运行时差异

新增与上升题

这些题总次数尚未进入 Top 10,但在 6–7 月集中出现,值得提前准备:

  • 有状态服务改多节点:共享状态、稳定路由、幂等、租约和故障恢复。
  • 实时搜索联想:防抖、取消旧请求、前缀索引、热点缓存和延迟预算。
  • MySQL 三种日志与内部两阶段提交:开始从“事务隔离”追到崩溃一致性。
  • Go GMP、Channel 与 Mutex:Java 岗之外的后端运行时问题增多。
  • Spring AOP 失效与循环依赖:从注解使用追到代理边界和设计问题。

复习优先级

只有 3 天

  1. MySQL 索引、事务、MVCC、三种日志。
  2. Redis 快、缓存三大问题、缓存一致性、大 Key。
  3. MQ 顺序/重复/丢失/积压,外加一套线上故障五步框架。

有 1 周

在前三项基础上补 JVM/GC、Java 并发、线程池、ThreadLocal、TCP/TLS/HTTP/RPC,并为每个主题准备一个项目实例和一个失败案例。

算法手撕附录

本批面经出现过最长回文子串、最长无重复子串、反转链表、合并有序数组、最大子数组和、判断平衡二叉树、最长有效括号和快速排序。它们不计入八股频次,但应至少做到 15–25 分钟内写完、讲清复杂度并覆盖边界。

对应季节合集

统计口径截至 7 月;8 月新增样本已收入夏季合集,下一轮统计时统一更新频次。