20天冲刺计划与模拟面试
面试权重:★★★ | 适用级别:P7/P8+ | 适合临近面试的集中冲刺
概览
这是一页横向备战路线图,专门承接 Preparation Points.txt 里的 20 天冲刺计划、阶段任务、模拟面试、投递节奏与复盘方法。
复习方式
这页的正确用法不是“从头看到尾”,而是每天先看当天阶段目标,再按“输入 -> 输出 -> 自测 -> 复盘”执行。凡是当天不能产出口述答案、图示或错题总结,就说明复习还停留在浏览层。
一、20天冲刺总览
| 阶段 | 天数 | 目标 | 重点产出 |
|---|---|---|---|
| 第一阶段 | Day 1-5 | 基础固化 | Java/JVM/数据库核心知识卡片、排障回答模板 |
| 第二阶段 | Day 6-10 | 框架与中间件 | Spring、Redis、MQ、MySQL 场景题骨架 |
| 第三阶段 | Day 11-15 | 算法与数据结构 | 高频题型模板、错题集、复杂度敏感度 |
| 第四阶段 | Day 16-20 | 综合应用与模拟 | 系统设计、项目表达、完整模拟面试复盘 |
使用建议
- 这页不是替代技术专题,而是给你一个临近面试时的执行顺序。
- 每个阶段都要回链到对应专题页深入复习,而不是只看这里。
- 如果时间不足,优先保住
Java / JVM / Spring / 数据库 / 中间件 / 分布式 / 系统设计 / 项目表达。
执行原则
- 每天只设一个主模块,避免“学了很多、没产出任何答案”。
- 每天必须有输出物,否则不算完成。
- 每
5天做一次阶段复盘,决定后面是补短板还是继续推进。
二、分阶段路线
第一阶段:基础固化(Day 1-5)
目标
- 把基础八股从“知道”拉到“能讲清 Why”。
- 建立 Java 基础、JVM、数据库的统一知识框架。
- 开始形成自己的面试表达模板。
每日安排
Day 1-2 执行清单
- 输入
- 复习 Java 语言基础、集合、并发、异常、泛型、反射。
- 输出
- 对照 Java语言基础 手写
5个边界场景。 - 产出一份“集合 + 并发”高频问答卡片。
- 对照 Java语言基础 手写
- 自测
- 口述
== / equals / hashCode、HashMap、synchronized vs ReentrantLock三题。
- 口述
- 复盘
- 记录哪些题会背结论但解释不清原理。
Day 3-5 执行清单
- 输入
- 复习 JVM 内存结构、GC、类加载、排障工具。
- 同步回看数据库中的索引、事务、慢 SQL 排查。
- 输出
- 对照 JVM深度 做一轮工具链回顾:
jstack / jmap / MAT / Arthas。 - 写出一版“线上排障回答模板”。
- 对照 JVM深度 做一轮工具链回顾:
- 自测
- 口述
GC 如何选型、类加载过程、一次 OOM 排查流程。
- 口述
- 复盘
- 记录是卡在原理、工具使用还是回答结构。
本阶段重点
- Java 基础题不能只背结论,要能解释底层机制。
- JVM 题必须会“现象 -> 工具 -> 根因 -> 优化 -> 验证”的回答链路。
- 数据库基础题要同步复习索引、事务与慢 SQL 排查。
本阶段检查点
- 能否无稿讲清
3个核心基础题。 - 是否已经形成第一版技术回答模板。
- 是否开始积累错题与追问本,而不是只看资料。
第二阶段:框架与中间件(Day 6-10)
目标
- 把最常见的业务组件题串成完整链路。
- 能从 Spring 一路讲到 Redis、Kafka、MySQL、分布式一致性。
- 补足框架失效场景、缓存一致性、消息可靠性。
每日安排
Day 6-7 执行清单
- 输入
- 输出
- 整理
IOC / AOP / 事务失效 / 自动装配 / 注册中心 / 网关 / 灰度的一页串讲图。 - 写出“事务失效清单”和“自调用/代理机制回答模板”。
- 整理
- 自测
- 用 3 分钟口述一次“Spring 事务为什么会失效”。
- 复盘
- 标记自己是卡在原理链路还是卡在场景举例。
Day 8-10 执行清单
- 输入
- 输出
- 写出“秒杀链路答案骨架”和“消息可靠性 checklist”。
- 分别整理
MVCC、索引失效、缓存一致性、Kafka 可靠性、分布式事务选型的回答卡片。
- 自测
- 无稿回答“缓存一致性怎么做”“Kafka 如何保证可靠性”“为什么不用本地事务”。
- 复盘
- 记录自己是否能把组件题串成业务场景题。
本阶段重点
- 能把单点知识串成场景题。
- 同类组件必须会做对比,例如
Kafka vs RocketMQ、Nacos vs Eureka。 - 每学完一个模块,补一轮“如果线上出问题怎么排查”。
本阶段检查点
- 是否已经有至少
2个完整场景题骨架。 - 是否每个中间件都能讲“适用场景 + 核心机制 + 易错点”。
- 是否形成一版自己的故障排查模板。
第三阶段:算法与数据结构(Day 11-15)
目标
- 把高频题型练到“看到题就知道模板”。
- 建立链表、树、图、DP、二分、贪心的题型映射。
- 提升复杂度敏感度和面试白板表达。
每日安排
Day 11-13 执行清单
- 输入
- 主攻 数据结构与算法 的数组、链表、树、图、排序、二分。
- 输出
- 每天至少整理
10题的题型归类,不只记录 AC。 - 对每类题写出“识别信号 -> 常用模板 -> 易错点”。
- 每天至少整理
- 自测
- 随机抽
3题,先口述思路,再写代码。
- 随机抽
- 复盘
- 记录自己是卡在题型识别、边界条件还是复杂度分析。
Day 14-15 执行清单
- 输入
- 主攻 DP、贪心、并查集、拓扑排序、最小生成树。
- 同步复习 设计模式与编码,准备“模式在项目中的应用”。
- 输出
- 写一页“DP 状态设计 checklist”和“常见贪心证明思路”。
- 自测
- 练
1次白板表达:先说暴力解,再说优化解,再说复杂度。
- 练
- 复盘
- 记录自己是否能在
3分钟内讲清思路,而不是直接闷头写代码。
- 记录自己是否能在
刷题规则
- 目标总量:LeetCode / 牛客
300-400题。 - 每道错题至少复盘三件事:
- 为什么第一反应错了。
- 正解的状态转移 / 数据结构选择是什么。
- 面试时如何在
3分钟内讲清楚。
本阶段检查点
- 是否已经形成自己的题型地图。
- 是否每种高频题型都有一页模板化总结。
- 是否能在白板场景下稳定表达边界条件和复杂度。
第四阶段:综合应用与模拟(Day 16-20)
目标
- 把系统设计、项目表达、行为面全部串起来。
- 用模拟面试检验知识覆盖和表达稳定性。
- 形成“项目 + 系统设计 + 高频八股”的联动输出。
每日安排
Day 16-17 执行清单
- 输入
- 输出
- 分别写出
秒杀 / 日志系统 / IM / 支付 / 短链 / 分布式事务的回答骨架。 - 每题至少补上需求澄清、容量估算、核心链路、trade-off、演进路线。
- 分别写出
- 自测
- 任选
1题做30-45分钟完整系统设计模拟。
- 任选
- 复盘
- 记录自己是否会漏需求澄清、容量估算或扩展性设计。
Day 18-20 执行清单
- 输入
- 主攻 软技能与方法论。
- 输出
- 梳理
2-3个项目,按 STAR 法则输出完整答案。 - 做
2-3次完整模拟:技术面 + 系统设计面 + 行为面。
- 梳理
- 自测
- 录音或录像一次完整模拟,重点检查是否“先结论后展开”。
- 复盘
- 把所有追问卡点整理进错题本和项目追问本。
本阶段重点
- 把“会”变成“能稳定表达”。
- 模拟时不要只练标准答案,要练追问下的展开能力。
- 任何系统设计题,都要练熟需求澄清、容量估算、核心链路、trade-off、演进路线。
本阶段检查点
- 至少完成
2次完整模拟,且每次都有书面复盘。 - 至少有
2个主项目达到“1 分钟版 + 3 分钟版 + 追问版”。 - 至少有
3道系统设计题能完整口述。
三、每日执行模板
时间分配
标准日程模板
- 上午
- 理论复习与知识梳理
1-2小时。
- 理论复习与知识梳理
- 下午
- 代码验证、源码阅读、刷题
2-3小时。
- 代码验证、源码阅读、刷题
- 晚上
- 复盘总结、知识卡片整理、错题回顾
1小时。
- 复盘总结、知识卡片整理、错题回顾
时间不足时的缩减版
- 只有
2小时时:40分钟复习 +40分钟输出 +40分钟复盘。
- 只有
1小时时:- 只做“抽题口述 + 记录卡点”,不要再开新模块。
每日闭环
- 先确定当天主题,不要混学太多模块。
- 读完专题后立刻输出
5-10个问题的口述答案。 - 对关键知识点做卡片化整理。
- 当天至少做一次“无稿回答”。
- 睡前复盘今天最容易被追问卡住的
3个点。
每日记录模板
- 今天主模块:
- 今天完成的输入:
- 今天的输出物:
- 今天卡住的 3 个问题:
- 明天优先补哪一块:
常见失分点
- 一天看了很多文章,但没有口述和输出。
- 每天都在补新内容,没有回看旧错题。
- 总是混学多个主题,导致回答链路始终不成型。
四、工具与追踪方法
工具建议
- 知识管理:Anki、Notion
- 开发调试:IntelliJ IDEA
- JVM 分析:
jvisualvm、MAT、Arthas - 刷题平台:LeetCode、牛客网
- 面经来源:牛客、脉脉、团队公开技术博客
工具使用原则
- 工具只服务于“定位问题”和“固化认知”,不要陷入堆工具。
- 知识管理工具里至少分三类卡片:高频题、项目追问、错题复盘。
进度追踪
- 每天自测
10道题,正确率>80%再进入下一模块。 - 记录错题本,按“概念错 / 表达错 / 推导错 / 忘记场景”分类。
- 每
5天休息半天,避免后期疲劳导致效率塌陷。
阶段复盘模板
- 这
5天我最稳的模块是什么? - 我最薄弱的是知识、表达,还是项目结合?
- 哪
3个问题反复卡住? - 下一阶段要保留什么、砍掉什么?
五、模拟面试打法
模拟形式
- 技术快问快答
20-30分钟,检查基础覆盖面。
- 系统设计深挖
30-45分钟,检验结构化能力。
- 项目和行为面
20-30分钟,检验项目表达与成长性。
模拟顺序建议
- 先做技术快问快答热身。
- 再做系统设计或项目深挖。
- 最后做行为面,检查表达稳定性和成熟度。
模拟后必须复盘
- 哪些题我只会结论,不会讲原理?
- 哪些题我会原理,但不会结合项目?
- 哪些题我会答,但结构混乱、结论不先行?
- 哪些追问把我打回了“背八股”状态?
高频场景题模板
- 让你设计一个秒杀系统,你会怎么答?
- 30秒答法:先澄清业务规则和流量规模,再讲限流、库存扣减、削峰、幂等、监控与回滚,最后补一致性和高可用权衡。
- 关键词:需求澄清、削峰、库存、幂等、回滚、trade-off
- 追问提醒:超卖怎么防;Redis 和 DB 如何一致;热点流量怎么压
- 回答框架:先讲约束和目标,再讲主链路设计,最后讲风险点、降级和演进。
- 核心关注点:需求澄清是否到位;库存与下单链路是否闭环;稳定性策略是否完整
- 让你讲一次线上故障处理经历,你会怎么答?
- 30秒答法:按“影响面 -> 止血 -> 定位 -> 根因 -> 修复 -> 复盘”讲,重点突出你的判断动作和机制改进,而不是只讲事故细节。
- 关键词:影响面、止血、根因、修复、机制改进
- 追问提醒:如果不能回滚怎么办;如何界定责任;后续怎么防再发
- 回答框架:先讲故障级别和影响面,再讲止血动作与定位链路,最后讲复盘和机制建设。
- 核心关注点:是否体现优先级判断;是否有根因和长期治理;是否只讲现象不讲动作
- 让你讲一个最有代表性的项目,你会怎么答?
- 30秒答法:用 STAR 先说背景和目标,再说你的职责与关键动作,最后给结果和复盘,准备好架构图和 3 个追问点。
- 关键词:STAR、职责、关键动作、量化结果、复盘
- 追问提醒:为什么是你主导;最大的取舍是什么;如果重做如何优化
- 回答框架:先用 1 分钟版本交代背景、目标和职责,再按“分析 -> 方案 -> 落地 -> 结果 -> 复盘”展开。
- 核心关注点:个人贡献是否清晰;是否有量化结果;是否准备了追问分支
六、投递与面试节奏
投递建议
- 从 Day 10 开始投递,不要等全部准备完再投。
- 第一批面试的价值主要是校准题型和暴露盲区。
- 每轮面试后,马上把新追问补进资料体系。
投递执行法
- Day 10-12
- 小批量投递,用来校准题型。
- Day 13-17
- 根据前几轮反馈,集中投递目标公司。
- Day 18-20
- 控制节奏,不再盲目海投,重点保障核心场次状态。
面试节奏建议
- 一周内尽量集中安排同级别公司,方便比较和复盘。
- 核心面试周前
2-3天,不再大面积扩新知识,只做回顾与口述。 - 行为面和项目表达至少单独练一次,不要只练技术题。
常见失分点
- 前期不投,导致第一次正式面试就是高价值目标公司。
- 一场面试结束后不复盘,错过最有价值的真实反馈。
- 核心面试前一天还在疯狂补新知识,导致状态紊乱。
七、冲刺清单
技术准备
- Java 并发、集合、JVM、Spring、MySQL、Redis、MQ 都有可口述答案
- 至少准备
3道完整系统设计题 - 至少准备
2套故障排查案例 - 至少准备
1套分布式事务选型案例
项目准备
- 准备
2-3个深度项目 - 每个项目能画出架构图和关键时序
- 每个项目都有量化结果
- 每个项目都准备好“为什么这么选”和“如果重做怎么改”
行为面准备
- 为什么离职
- 最大挑战
- 最大失误与复盘
- 跨团队协作冲突
- 未来
3-5年规划
最终自检
- 至少做过
2次完整模拟并完成复盘。 - 至少录音听过一次自己的项目表达。
- 至少把最近
3次面试新增追问补进资料体系。