阶段:面试篇 | 定位:把前几篇学到的能力,翻译成简历语言与面试表现,覆盖求职全程
一、求职时间线
校招(应届生主战场,按倒推准备):
| 时间 | 节点 | 关键动作 |
|---|---|---|
| 大三/研一上 | 能力建设期 | 过完入门→框架篇,开始算法刷题(见《03-算法刷题路线》) |
| 3~5 月 | 春招实习投递 | 投暑期实习(头部公司暑期实习转正是进大厂最稳的路径) |
| 6~8 月 | 暑期实习 | 把项目难点写进简历,实习结束争取转正评价 |
| 7~9 月 | 提前批 | 大厂提前批免笔试/流程快,用实习经历冲一波,不影响正式批 |
| 8~10 月 | 秋招正式批(主战场) | 笔试+三轮技术面+HR 面,同时投 30+ 家分散风险 |
| 次年 3~4 月 | 春招补录 | 秋招不满意的补机会,岗位少于秋招、节奏更急 |
社招:集中在”金三银四”与”金九银十”,提前 12 个月准备——更新简历、把当前项目沉淀出 23 个可讲的难点、重刷八股与算法;在职跳槽要预留背调与交接时间。
投递渠道与节奏:
- 校招:公司官网/招聘公众号 → 内推(学长学姐、牛客内推帖,提前批大多靠内推)→ 宣讲会现场投递;
- 社招:内推成功率最高(优先找目标团队的人),其次 BOSS 直聘等平台主动沟通,中高级岗位走猎头;
- 节奏:秋招 7 月底 8 月初就开投提前批,批次越早 HC 越足;同一公司通常只能投一个岗位,投前想清楚方向;
- 建一张投递进度表(公司/岗位/状态/下一动作),面试邀约集中在同一周时要主动协调时间。
二、Java 后端岗位画像 ⭐
JD(岗位描述)看着五花八门,核心要求就六类,正好对应本指南的各篇:
| JD 通用要求 | 背后在考察什么 | 对应本指南 |
|---|---|---|
| Java 基础扎实,熟悉集合、并发、JVM | 一面硬门槛,追问链最深的板块 | 01/02 篇 + 《01-Java高频八股速查》 |
| 熟悉 Spring/SpringBoot/MyBatis | 是否有真实工程经验,事务、Bean 细节常挖 | 04-框架篇 |
| 熟悉 MySQL、索引调优、事务 | 写过真业务的人才答得出慢 SQL 实战 | 03-数据库篇 |
| 熟悉 Redis/MQ 等中间件 | 缓存三大问题、消息可靠性是必考 | 05-中间件篇 |
| 了解分布式、高并发场景 | 场景题与项目深度的分水岭 | 06-分布式与高并发篇 |
| 良好的算法与数据结构基础 | 笔试 + 每轮面试手撕代码 | 《03-算法刷题路线》 |
加分项:GitHub 有像样的仓库、技术博客、竞赛/证书、参与过开源项目;没有也不必编,把项目讲深同样有竞争力。
三、简历结构 ⭐
一页原则:应届/两年以内经验必须一页;模块顺序:基本信息 → 教育背景 → 专业技能 → 项目经历 → 其他(加分项)。教育背景在前(校招看学校),项目经历占篇幅 50% 以上。
专业技能写法 ⭐(最容易踩坑的部分):
- 程度词只用”熟悉/掌握/了解”三档,慎用”精通”——写了精通的板块面试官会往死里问;
- 每一条技能都要能接住两层追问,写之前自问:“这条被问到原理层我能答吗?”
- 不要写名词堆砌(“熟悉 Java、Spring、MySQL、Redis、Kafka…”一行带过),每条带能力描述。
反例:精通 Java,精通 Spring 全家桶,精通 MySQL、Redis,精通分布式。
正例:
- 熟悉 JVM 内存模型与常用 GC 收集器,能使用 jstack/jmap 排查线上 CPU 飙高、OOM 问题;
- 熟悉线程池原理(7 参数、执行流程、拒绝策略),有异步任务编排与虚拟线程实践经验;
- 熟悉 MySQL 索引与事务原理,有慢 SQL 定位优化、索引设计的实际经验;
- 熟悉 Redis 核心数据结构与持久化,能解决缓存穿透/击穿/雪崩与缓存一致性问题;
- 了解分布式理论(CAP、一致性哈希)与分布式事务方案,熟悉 Seata/RocketMQ 事务消息的使用场景。
其他加分项写法:GitHub 放有 README 的完整仓库(不是 fork 堆)、博客列 3~5 篇高阅读量文章、算法写”LeetCode 刷题 200+(Hot 100 全刷)“——写了就要经得起现场手撕。
投递前自查清单(10 条全过再投):
- 一页以内、PDF 格式,文件名为”姓名-岗位-学校/工作年限”;
- 手机号与邮箱正确,邮箱名正式、头像得体;
- 专业技能每一条都通过了”两层追问”自测;
- 每段项目经历都有量化结果,且数字能说出测试方法;
- 时间线无矛盾(实习/项目/在校时间能对上);
- 无错别字,技术名词大小写拼写正确(Java/MySQL/Spring);
- GitHub 与博客链接可访问,仓库有 README;
- 技能顺序按目标 JD 调整,匹配度最高的两条放最前;
- 导出 PDF 后再检查一遍排版(字体、加粗、分隔线不错乱);
- 找一位已工作的学长/朋友完整看一遍并提意见。
四、项目经验怎么写 ⭐⭐
STAR 法则:Situation(背景:什么业务、什么规模)→ Task(任务:你负责什么)→ Action(行动:技术方案与取舍)→ Result(结果:量化数据)。篇幅上 Action 与 Result 占七成,别花笔墨写”需求分析、团队协作”。
三个可写项目方向(难度递进,衔接本指南动手实践):
- 基础项目:多线程 todo / 图书管理(练 01/05 篇):SpringBoot + MyBatis-Plus + MySQL 完整 CRUD、登录鉴权、统一异常与参数校验——证明工程基本功,可写的难点:全局异常设计、参数校验、接口幂等;
- 进阶项目:简易商城(练 03/04 篇):商品/订单/支付模拟,引入 Redis 缓存商品热点数据、RabbitMQ 异步通知库存与日志——可写的难点:缓存一致性方案、消息可靠性(confirm + 手动 ack + 死信兜底)、消费幂等;
- 亮点项目:秒杀系统演进(练 06 篇,最能拉开差距):从”DB 扣库存被压垮”讲起,演进到 网关限流 → Redis+Lua 预扣 → MQ 异步落库 → DB 条件更新防超卖,压测出量化数据——这是把整个分布式篇串成故事的最好载体。
难点挖掘清单(每个项目找 2~3 个,按此排查你做过的事):
- 性能优化:慢 SQL 加索引/覆盖索引前后对比、接口 RT 从多少降到多少;
- 缓存一致性:选了 Cache Aside + 删除缓存 + 重试,为什么不更新缓存、不一致窗口多大;
- 消息可靠性:生产确认 + 持久化 + 手动 ack 三段怎么配,消息丢了怎么办;
- 幂等:防重复下单/重复支付用什么方案(唯一索引/去重表/状态机),为什么;
- 限流与熔断:限流阈值怎么定的、压测过吗、被限流的请求怎么处理。
量化结果模板(没有线上环境就用 JMeter 压测自己的项目,数据真实可复述):
- 接口响应:下单接口 RT 由 380ms 降至 60ms(缓存 + 异步化);
- 吞吐:单机 QPS 由 300 提升至 2400(压测环境:4C8G,JMeter 500 并发);
- 正确性:500 并发抢 100 件库存压测 10 轮,0 超卖;
写法示例(一段合格的 Action+Result):
商品详情页 QPS 高时 DB 查询打满:引入 Caffeine+Redis 两级缓存,热点商品走本地缓存,
采用"先更新 DB 再删缓存 + 消息重试"保证一致性;压测详情接口 QPS 从 350 提升至 2800,
P99 由 210ms 降至 18ms,缓存命中率 97%。
面试官常见追问与应对:
| 追问 | 应对思路 |
|---|---|
| “为什么不用 X 方案?” | 说出 X 的问题 + 你所选方案的代价,体现权衡而非”唯一正确答案” |
| “这个 QPS 怎么测出来的?” | 说清工具(JMeter)、并发数、机器配置、测试数据量,数据要可复现 |
| “流量再涨 10 倍怎么办?” | 按 06 篇演进路径答:先缓存/限流,再 MQ 削峰,最后才分库分表 |
| “项目里你负责哪部分?” | 如实划边界,突出自己负责模块的难点,别把整个项目说成一个人做的 |
| “上线后出过什么问题?” | 提前准备一个真实故障/bug:现象 → 排查过程 → 根因 → 修复与复盘 |
五、面试流程与各轮准备 ⭐
| 轮次 | 侧重点 | 准备要点 |
|---|---|---|
| 一面(基础+算法) | 八股 + 手撕代码,刷人最多 | 《01-Java高频八股速查》《02-数据库与中间件面试速查》过两轮;算法模板默写级熟练 |
| 二面(深度+项目) | 项目追问到底层,八股问”为什么” | 每个简历上的技术点准备”原理 + 取舍 + 备选方案”三层答案 |
| 三面(设计+软素质) | 场景设计题、职业规划、带人潜力 | 秒杀/短链/抢红包等场景题用框架练熟,准备反问与职业故事 |
| HR 面(稳定性与匹配) | 离职原因、薪资、抗压 | 话术真诚不抱怨,提前想好期望薪资的依据 |
场景题应对框架(三面标配):
- 澄清需求:先问”日活多少、峰值多大、哪些功能必须”——很多题目本无标准答案,考察的是你怎么收敛问题;
- 估算量级:QPS、存储量、带宽拍个数量级(如 100 万日活 × 人均 20 次 = 2000 万次/天 ≈ 峰值 5000 QPS);
- 分模块设计:接入层(网关/负载均衡)→ 服务层(缓存/MQ/微服务拆分)→ 数据层(读写分离/分库分表);
- 权衡取舍:主动说每个选择的代价(一致性 vs 性能、复杂度 vs 收益),这里最能体现 06 篇的功力。
笔试准备:校招笔试通常是 24 道编程题(ACM 模式)+ 选择题;按《03-算法刷题路线》的要求练好标准输入输出,在牛客上做 23 次两小时整卷模拟,练时间分配(先易后难,部分公司按用例给分)。
场景题示例(设计一个短链接服务,套用上面的框架):
- 澄清:读多写少?要不要统计点击量?短链会过期吗?
- 估算:每年 1 亿条新短链 → 长链截哈希取 62 进制 7 位,或分布式 ID 发号器(呼应《01-分布式理论基础》雪花算法);
- 设计:短码作唯一索引存 MySQL + Redis 缓存热点映射 → 访问 302 跳转(301 省 RT 但 302 便于统计与改指向);
- 取舍:哈希冲突重试/补位;发号器方案无冲突、趋势递增利于分库分表;收尾补防刷与监控。
六、避坑清单
- 背题痕迹:一字不差背答案、答非所问——用自己的话复述,答案不超过 90 秒再等追问;
- 简历注水:写了没做过的技术,被追问两层就露馅,比不写更糟;每条经历按”三层追问”自检;
- 不懂装懂:最忌硬编。安全的说法是”这块我没实际用过,按我的理解是……如果不对请您指点”;
- 只答不问:全程被动。适当反问(“这个岗位主要业务方向是什么”)展示主动性;
- 情绪化抱怨:吐槽前公司/前领导是 HR 面一票否决项,把离职原因包装成”求发展”;
- 迟到大意:线上面试提前 15 分钟测试摄像头与网络,笔试带好身份证件。
反问环节问什么(说”没有问题”会显得没兴趣):
- 团队与业务:这个岗位进去负责什么业务/模块?团队规模与梯队?
- 技术与成长:目前的技术栈与架构演进方向?新人有没有导师制?
- 考核:试用期考核标准是什么?(薪资福利留到 HR 面谈,技术面别问)
七、Offer 选择与谈薪
- 比较维度:别只看月薪——算”月薪 × 月数 + 年终概率 + 五险一金缴纳基数 + 补贴”,再叠加平台成长性、业务前景、加班强度(问清是否有大小周、加班文化与调休);
- 应届优先级建议:平台与业务 > 薪资 > 城市;第一份工作的技术密度和项目复杂度,决定下一跳的高度;
- 谈薪依据:手里有其他 offer 才有筹码,话术是”贵司是我优先选择,但手上还有 offer 在比,希望评估能否调整”;
- 红线:不虚构 offer 金额(背调一问便知)、不轻易毁约已接的 offer(行业圈子小,信誉是长期资产)。
八、面试前一周冲刺清单
- 八股:《01-Java高频八股速查》《02-数据库与中间件面试速查》再过一轮,只重刷未打勾与”心里没底”的题;
- 算法:每天 2 道模板题保手感,把 7 个手撕模板各默写一遍;
- 项目:对镜/录音演练 3 分钟项目介绍,把每个难点的”追问链”答到第三层;
- 场景题:秒杀设计讲 3 遍到不卡壳,再准备 1 个备用场景(短链、抢红包、排行榜);
- 杂项:多份 PDF 简历、1 分钟与 3 分钟两版自我介绍、提前 15 分钟测试线上面试设备或规划路线。
推荐资料
| 资料 | 说明 | 链接 |
|---|---|---|
| JavaGuide 简历指南 | 简历结构与技能清单的官方建议 | https://javaguide.cn/interview-preparation/resume-guide.html |
| JavaGuide 项目经验指南 | 项目怎么写、怎么被追问 | https://javaguide.cn/interview-preparation/project-experience-guide.html |
| JavaGuide 后端面试通关计划 | 从准备到拿 offer 的完整时间线 | https://javaguide.cn/interview-preparation/backend-interview-plan.html |
| JavaGuide 面试突击版 | 冲刺期快速复习的浓缩知识库 | https://interview.javaguide.cn/home.html |
| pdai 面试知识体系 | 按专题组织的面试题与答案索引 | https://pdai.tech/md/interview/x-interview.html |