Skip to content

Java 面试题体系与刷题策略 ​

S7-003建议学进阶约 90 分钟JDK 21求职与转岗 · 求职准备

1. 本节定位 ​

面试题不是一张「背诵清单」,而是一棵有先修关系的知识树 —— 顺序错了,背了也讲不出来;顺序对了,越背越通。

★ 本节用工具把 24 道高频题映射到课程,并按先修关系算出「复习顺序」 ✓✓:

text
24 道题 → 26 个知识点(全部已生成课程,覆盖率 24/24)
复习顺序(拓扑分层):
  第 1 层(13 个):S1-016 集合、S1-017 HashMap、S6-001 并发基础、S6-007 JVM 内存结构…
  第 2 层(7 个) :S6-002 synchronized、S6-008 类加载、S6-014 分布式事务…
  第 3-5 层       :S6-003 CAS、S6-010 GC 日志、S6-004 线程池、S6-011 Arthas、S6-005 JUC、S6-006 虚拟线程

★ 工具:python -X utf8 scripts/career/interview_index.py ✓

2. 学习目标 ​

  • 能说出面试题的四个层次(概念 / 原理 / 场景 / 设计)★★★;
  • 会用「先修拓扑」排出复习顺序 ★★★;
  • 掌握「三层递进」的回答结构(是什么 → 为什么 → 项目里怎么用)★★★;
  • 会做错题本与面试复盘(《模拟面试与面试复盘》)★★。

3. 前置知识检查 ​

4. 为什么需要这个知识 ​

★ 「背了 100 道题,面试还是答不上」的三个原因 ✗✗:

原因表现
顺序错 ✗先背 GC 再背类加载,JVM 的知识连不起来
只背结论 ✗✗说得出「双亲委派」四个字,说不清为什么需要 ✗
没有项目锚点 ✗✗✗答完概念就结束,面试官等不到「你在项目里怎么用」

5. 核心概念 ​

5.1 面试题的四个层次 ★★★ ​

层次例子回答要求
概念什么是双亲委派一句话定义 + 三个作用 ✓
原理为什么要委派?打破会怎样机制 + 后果(本知识库每节都有实测)✓✓
场景你们线上出现过类冲突吗项目锚点(《类加载机制》 的实测)✓✓✓
设计让你设计一个类加载隔离的插件系统开放题,考权衡(《高并发系统设计》 的方法)✓✓

★ 大部分人的准备停在第一层,而面试的分差在第三、四层 ✓✓✓。

5.2 复习顺序:按先修拓扑,不按题号(实测)★★★ ​

text
第 1 层(13 个):S1-016 集合、S1-017 HashMap、S3-003 索引、S3-004 事务与隔离级别、
                S3-036 进程与端口排查、S4-008 缓存三病、S4-010 Redis 分布式锁、
                S4-014 消息可靠性、S4-023 Seata、S6-001 并发基础、S6-007 JVM 内存结构、
                S6-013 CAP 与 BASE、T2-007 接口幂等
第 2 层(7 个) :S3-007 Spring AOP 与事务、S4-009 缓存一致性、S6-002 synchronized、
                S6-008 类加载、S6-009 GC 算法、S6-014 分布式事务、S6-015 分布式 ID
第 3 层(2 个) :S6-003 CAS 与 AQS、S6-010 GC 日志与调优
第 4 层(2 个) :S6-004 线程池、S6-011 Arthas 与线上诊断
第 5 层(2 个) :S6-005 JUC 容器、S6-006 虚拟线程

★★ 用法 ✓✓✓:按层推进,层内随意,跨层不能反 —— 第 1 层的内容会被后面每一层反复引用(例如 《并发基础:线程、锁与内存模型》 的 JMM 是 《synchronized 与 volatile》、《Lock、CAS 与 AQS》、《JUC 工具类与并发容器》 的地基)✓✓。

5.3 三层递进的回答结构 ★★★ ​

text
① 是什么(10 秒):一句话定义
② 为什么(60 秒):机制 + 代价/取舍(**每门课都给了实测数据**)
③ 项目里怎么用(60 秒+):我遇到过什么、怎么定位、结果如何

★ 示范(「GC 日志怎么读?」) ✓✓✓:

text
① 一条 Pause 行读三段:回收前→回收后的存活量、堆容量、停顿
② 关键是「存活量趋势」与「Full GC 原因分布」(S6-010 实测:System.gc() 与 Compaction 含义完全不同)
③ 我在项目里用 64M 堆复现过 OOM:存活量顶到 64M 上限 → Full GC 5 次 → OOM: Java heap space

★★ 第三层是分水岭 ✓✓:别人背概念,你讲现象与数据 ✓✓✓。

5.4 刷题的三个动作 ★★ ​

动作做法工具
自述先自己讲一遍(录音/对同伴),再对照课程补漏本节的索引 ✓
错题本记「卡在哪一层」:概念忘了 / 原理说不清 / 没锚点三列笔记 ✓
复盘每次面试后 24 小时内回填(《模拟面试与面试复盘》)复盘模板 ✓

★ 判断「过关」的标准 ✓✓✓:能不看讲义讲满 3 分钟,且接得住两层追问 ✓。

5.5 常见的高频追问链 ★★ ​

text
HashMap → 扩容 → 并发下的问题 → ConcurrentHashMap 怎么解决 → CAS/JMM
双亲委派 → 为什么需要 → 什么时候打破 → Tomcat 热部署 → 类卸载与泄漏
线程池 → 参数 → 队列与拒绝策略 → 线上参数怎么定 → 与 GC/JVM 的关系

★ 每条链都能在本知识库里走通(索引里已经标好课程)✓✓✓ —— 面试官顺着链追问,你在链上正好都有「实测锚点」 ✓。

6. 递进示例 ​

6.1 把示例索引换成你的题库 ​

python
# 编辑 scripts/career/interview_index.py 的 QUESTIONS 列表
QUESTIONS = [
    ("HashMap 的底层结构与扩容机制?", ["S1-017"]),
    ...
]

6.2 排好序之后怎么用 ​

text
第 1 周:第 1 层(13 个)—— 每天 2 个,自述 + 补漏
第 2 周:第 2 层 + 回炉第 1 层错题
第 3 周:第 3-5 层 + 全量模拟面试(S7-006)

6.3 反例:按背题 App 的顺序刷 ​

text
App 的顺序是「热度」,不是「依赖」✗✗
→ 背到 S6 发现要先回头补 JMM,前面的时间被浪费 ✓✓

7. 完整可运行工具与实测 ​

工具:scripts/career/interview_index.py

运行:

powershell
python -X utf8 scripts/career/interview_index.py

实测输出(节选):

text
===== 高频面试题 → 课程索引(24 题)=====
   1. HashMap 的底层结构与扩容机制?
       → S1-017 HashMap(已生成)
  12. 线上 CPU 100% 怎么排查?
       → S6-011 Arthas 与线上问题诊断(已生成);S3-036 进程与端口排查(已生成)
  15. 分布式事务有哪些方案?怎么选?
       → S6-014 分布式事务(已生成);S4-023 Seata 分布式事务(已生成)

===== 覆盖率 =====
题目覆盖:24/24;涉及知识点 26 个,其中已生成课程 26 个

===== 复习顺序(按先修关系拓扑分层:先第 1 层,再第 2 层…)=====
  第 1 层(13 个):…
  第 5 层(2 个):S6-005 JUC 工具类与并发容器、S6-006 虚拟线程

8. Debug 观察点 ​

  1. 把自己被问倒的题加进 QUESTIONS:观察它落在第几层 ✓✓✓;
  2. 抽第 1 层的一道题,按「三层递进」讲 3 分钟并录音:回放找卡点 ✓✓;
  3. 让同伴顺着「追问链」问两层:过不了就进错题本 ✓✓✓;
  4. 面试后把新题补进题库,重跑工具看覆盖率变化 ✓。

9. 常见错误 ​

#错误说明
1按热度乱序背 ✗✗先修没学,越背越乱 ✓✓
2只背结论不备原理 ✗✗面试官一追问就崩 ✓✓
3没有项目锚点 ✗✗✗第三层空白,分差就在这里 ✓✓
4不录音不复盘 ✗自述时才发现讲不顺已经太晚 ✓
5答案只背一份 ✗同一题要准备「30 秒版」与「3 分钟版」✓✓

10. 动手实验 ​

  1. 跑工具,打印自己的复习顺序 ✓✓✓;
  2. 对第 1 层的 13 道题逐一自述(录音),标记「讲不顺的」进错题本 ✓✓✓;
  3. 把每道题的 3 分钟版答案写下关键词(不要写全文)✓✓;
  4. 完成一轮后,用 《模拟面试与面试复盘》 的模拟面试检验 ✗✓。

验收方式:24 道题里,≥ 20 道能讲满 3 分钟并接住两层追问。

扩展任务:把「追问链」显式画出来(每链 4-5 个节点),贴在复习笔记首页 ✓✓

11. 练习题 ​

  1. 面试题的四个层次?分差在哪里?
  2. 为什么复习要按先修拓扑而不是题号顺序?
  3. 三层递进回答的结构?第三层为什么是分水岭?
  4. 错题本要记什么?
  5. 「过关」的判定标准是什么?
参考答案(要点)
  1. 概念 / 原理 / 场景 / 设计;分差在场景与设计层 ✓✓★
  2. 因为先修知识会被反复引用,乱序会反复回炉 ✓✓★
  3. 是什么 → 为什么(机制与取舍)→ 项目里怎么用;第三层是数据与现象,别人复制不了 ✓✓★
  4. 卡在哪一层(概念/原理/锚点),不是抄答案 ✓✓★
  5. 不看讲义讲满 3 分钟 + 接住两层追问 ✓✓★

12. 掌握标准 ​

  • [ ] 能说出四个层次并定位自己的短板 ★★★;
  • [ ] 会按拓扑顺序复习 ★★★;
  • [ ] 会用三层递进回答 ★★★;
  • [ ] 每道题都有项目锚点 ★★★;
  • [ ] 会做错题本与复盘 ★★。

13. 扩展资源 ​

14. 下一步学习 ​

《算法题准备策略》 算法题准备策略 —— 另一条独立的准备线。

进度只保存在本机浏览器,可随时清除

个人学习项目:AI 生成内容均经人工复核,第三方资源仅作索引