查看 Outline 目录
R01 / Java Backend
Java 后端开发面试路线
这条路线把 Java 后端面试拆成 8 个阶段、40 个 Topic。它不是完整知识清单:先用“必会”建立能够直接作答的核心框架,再根据 JD、项目经历和面试反馈补充常考与深入内容。
优先级决定先学什么;回答深度决定学到哪里。深度不是候选人职级。“按岗选学”只在目标岗位明确涉及,或能由自己的项目经历支撑时进入。
Java 语言与标准库
先建立稳定的语言模型。框架会变化,类型、对象和异常语义不会替你一起变化。
解释对象如何协作,并根据变化方向选择组合、继承、接口或抽象类。
2 / 3 篇正确处理不可变值、精度、空值和失败路径,避免把数据问题拖到生产环境。
2 / 5 篇理解编译期类型约束如何落到运行时,并解释框架为何能够发现和调用用户代码。
2 / 4 篇根据数据规模和阻塞模型选择 I/O API,并保证资源在失败路径上也能释放。
2 / 4 篇在可读性和性能边界内使用函数式 API,避免把一条数据管道写成调试盲区。
2 / 5 篇集合、算法与代码质量
集合不是 API 背诵题。选择是否合理,取决于访问模式、数据规模和并发条件。
根据访问、顺序、去重和队列语义选择集合,并说清复杂度与内存代价。
2 / 5 篇从哈希分布、冲突和扩容解释查询性能,并正确实现作为键的对象。
2 / 3 篇根据竞争模式选择并发容器,理解弱一致迭代和复合操作的边界。
2 / 5 篇把算法复杂度、边界条件和 Java 实现细节放进同一次推理,而不是分别背答案。
3 / 5 篇让类型、接口和测试共同约束变化,避免依靠注释维持正确性。
1 / 5 篇JVM 与运行时
JVM 题目的价值不在术语数量,而在于能否把代码、内存、编译和故障证据连起来。
说明源码如何变成可执行类,并判断类冲突、初始化和隔离问题出现在哪个阶段。
2 / 5 篇把对象、栈帧、类元数据和直接内存放回对应区域,并由此判断异常来源。
2 / 5 篇从存活判断、复制与并发标记解释停顿,并根据延迟和吞吐目标选择收集器。
3 / 5 篇理解热点代码如何被优化,以及基准、预热和去优化为什么会改变观测结果。
1 / 5 篇从症状选择线程、堆、GC 或运行时证据,用排除法缩小故障范围。
2 / 5 篇并发与 Java 内存模型
并发问题来自共享状态和执行顺序。工具很多,证据最终仍要回到这两件事。
区分原子性、可见性和有序性,并用 happens-before 判断跨线程结果。
3 / 5 篇根据临界区和状态转换选择同步机制,而不是把 volatile 当成轻量锁。
2 / 5 篇从同步状态和等待队列理解 Lock、Latch、Semaphore 与读写锁。
2 / 5 篇根据任务时间和资源上限配置执行器,并让过载通过队列与拒绝策略显式暴露。
2 / 3 篇识别死锁、活锁、饥饿、线程泄漏和上下文切换,并用时间线证明原因。
2 / 4 篇Spring 与数据访问
从一次请求进入容器,再沿代理、事务和持久化返回。框架原理应该落在这条链路上。
解释对象创建为何交给容器,并判断作用域、生命周期和循环依赖问题。
2 / 5 篇沿代理调用链解释切面如何生效,并识别事务、缓存和异步注解的失效边界。
2 / 3 篇跟踪请求从连接进入 Controller 再到响应的路径,并放置正确的校验、鉴权和异常处理。
2 / 5 篇解释自动配置为何生效、如何覆盖,并在启动失败时定位条件与配置来源。
2 / 5 篇根据查询复杂度和领域模型选择持久化方式,并控制连接、事务和批处理成本。
2 / 5 篇网络、数据与服务端生态
服务端组件不是购物清单。每增加一个组件,都要说明它解决的问题和新增的故障模式。
从连接、协议和线程模型解释一次远程调用的延迟、超时与资源占用。
3 / 5 篇理解索引如何缩小扫描范围,并用执行计划验证联合索引与查询改写。
2 / 5 篇解释隔离级别如何约束并发读写,以及锁与多版本分别处理什么问题。
3 / 5 篇根据访问模式决定是否缓存,并处理失效、热点和数据库一致性代价。
3 / 5 篇用异步和专用索引处理慢任务与复杂查询,同时保证消息和索引可以恢复。
2 / 5 篇微服务与生产治理
微服务把进程内问题变成网络和组织问题。拆分容易,稳定地运行才是主要成本。
理解服务实例如何被发现、配置和路由,并控制变更传播范围。
2 / 5 篇为失败设置明确预算,避免局部变慢经由重试和排队扩散为系统故障。
2 / 5 篇从业务不变量选择强一致、补偿或事件驱动方案,并设计可恢复的中间状态。
2 / 5 篇把身份、权限、输入和密钥放到明确边界,避免依赖网络位置作为信任证明。
2 / 5 篇让代码经过可重复构建进入环境,并用日志、指标和追踪解释生产故障。
2 / 5 篇系统设计与架构面试
只在目标岗位明确考察系统设计或架构经验时进入。回答重点是约束、取舍、迁移路径和故障恢复。
从需求、规模和可靠性目标出发,完成容量估算、边界拆分与关键选型。
1 / 5 篇在节点故障和网络分区条件下,判断复制、一致性与可用性的真实边界。
1 / 5 篇按业务变化和团队边界划分模块,避免用部署单元替代领域分析。
1 / 5 篇把可靠性目标、恢复能力、租户隔离和资源成本放进同一份架构预算。
1 / 5 篇在架构面试中说明技术决策、迁移步骤、回滚条件和失败后的修正方式。
1 / 5 篇