一、每道题的回答层次

任何问题都按以下五层准备。面试时先回答前两层,面试官继续追问再逐层展开。

第一层:一句话结论

先直接回答问题,不从历史背景开始。

它是什么 / 两者核心区别 / 最终应该怎么选

第二层:关键点

通常列 3~5 个关键点:

  • 核心职责或作用。
  • 主要流程或数据结构。
  • 优点和代价。
  • 适用场景。
  • 常见风险。

第三层:底层原理

回答“为什么能工作”:

  • 数据如何存储。
  • 请求如何流转。
  • 状态如何变化。
  • 并发如何控制。
  • 故障后如何恢复。

第四层:边界与取舍

回答“什么时候不能用”:

  • 性能上限。
  • 一致性和可用性取舍。
  • 极端并发和故障场景。
  • 版本差异。
  • 替代方案。

第五层:项目落地

回答“你实际怎么用”:

  • 业务规模和约束。
  • 为什么选择该方案。
  • 参数如何设置。
  • 如何监控和验证。
  • 出过什么问题,怎么复盘。

二、不同题型怎么往下追问

概念题

是什么 → 解决什么问题 → 怎么实现 → 有什么代价 → 在哪里使用

对比题

核心区别 → 原理差异 → 性能差异 → 适用场景 → 如何选型

不要只背表格,要给出选择依据。

原理题

入口 → 核心对象 → 状态变化 → 正常流程 → 异常流程

调优题

现象 → 指标 → 定位 → 根因 → 修复 → 验证 → 防复发

系统设计题

需求与规模 → 核心链路 → 数据模型 → 容量估算
→ 高可用与一致性 → 降级容灾 → 监控验证

项目题

背景 → 个人职责 → 难点 → 候选方案 → 取舍
→ 落地细节 → 量化结果 → 复盘

三、常见追问维度

为什么

  • 为什么这样设计?
  • 为什么不用另一个方案?
  • 为什么这个参数是这个值?

怎么做

  • 核心流程是什么?
  • 关键类、数据结构或协议是什么?
  • 失败后如何恢复?

会怎样

  • 并发量增加十倍会怎样?
  • 节点宕机或网络分区会怎样?
  • 数据量变大后瓶颈在哪里?

怎么证明

  • 看什么指标?
  • 如何压测?
  • 如何确认优化没有牺牲正确性?

怎么落地

  • 项目中什么时候使用过?
  • 遇到什么问题?
  • 参数和容量怎么确定?

四、回答易错点

  • 只给定义,没有说明解决的问题。
  • 只讲正常流程,不讲失败路径。
  • 只讲优点,不讲代价和边界。
  • 只背组件名,不知道调用链和数据流。
  • 把团队成果全部描述成个人成果。
  • 编造 QPS、延迟或优化比例。
  • 用“绝对不会”“一定安全”描述分布式系统。
  • 忽略 JDK、Spring Boot、MySQL 等版本差异。

五、复习标记

可以在问题标题后自行增加复习状态,但不要修改标题文字,以免破坏总索引链接:

> [!note] 掌握程度
> 
> - [ ] 能在 30 秒内快答
> - [ ] 能画出核心流程
> - [ ] 能回答两个追问
> - [ ] 能结合项目案例