面试问题深挖指南¶
一、每道题的回答层次¶
任何问题都按以下五层准备。面试时先回答前两层,面试官继续追问再逐层展开。
第一层:一句话结论¶
先直接回答问题,不从历史背景开始。
第二层:关键点¶
通常列 3~5 个关键点:
- 核心职责或作用。
- 主要流程或数据结构。
- 优点和代价。
- 适用场景。
- 常见风险。
第三层:底层原理¶
回答“为什么能工作”:
- 数据如何存储。
- 请求如何流转。
- 状态如何变化。
- 并发如何控制。
- 故障后如何恢复。
第四层:边界与取舍¶
回答“什么时候不能用”:
- 性能上限。
- 一致性和可用性取舍。
- 极端并发和故障场景。
- 版本差异。
- 替代方案。
第五层:项目落地¶
回答“你实际怎么用”:
- 业务规模和约束。
- 为什么选择该方案。
- 参数如何设置。
- 如何监控和验证。
- 出过什么问题,怎么复盘。
二、不同题型怎么往下追问¶
概念题¶
对比题¶
不要只背表格,要给出选择依据。
原理题¶
调优题¶
系统设计题¶
项目题¶
三、常见追问维度¶
为什么¶
- 为什么这样设计?
- 为什么不用另一个方案?
- 为什么这个参数是这个值?
怎么做¶
- 核心流程是什么?
- 关键类、数据结构或协议是什么?
- 失败后如何恢复?
会怎样¶
- 并发量增加十倍会怎样?
- 节点宕机或网络分区会怎样?
- 数据量变大后瓶颈在哪里?
怎么证明¶
- 看什么指标?
- 如何压测?
- 如何确认优化没有牺牲正确性?
怎么落地¶
- 项目中什么时候使用过?
- 遇到什么问题?
- 参数和容量怎么确定?
四、回答易错点¶
- 只给定义,没有说明解决的问题。
- 只讲正常流程,不讲失败路径。
- 只讲优点,不讲代价和边界。
- 只背组件名,不知道调用链和数据流。
- 把团队成果全部描述成个人成果。
- 编造 QPS、延迟或优化比例。
- 用“绝对不会”“一定安全”描述分布式系统。
- 忽略 JDK、Spring Boot、MySQL 等版本差异。
五、复习标记¶
可以在问题标题后自行增加复习状态,但不要修改标题文字,以免破坏总索引链接: