导语:这一篇是智力题的"进阶区",也是区分度最高的部分。覆盖概率与贝叶斯的反直觉结论(三门问题、两个孩子、检测阳性)、博弈与不变量的构造(100 苹果、25 匹马、猴子搬香蕉)、公共知识的归纳链(病狗与黑帽)、数学与数论(剩余定理、连续整数之和),最后给出「如何把智力题思维迁移到工程与系统设计」的收尾套路。
导语:智力题在面试里不考背诵,考的是"把生活语言翻译成数学模型"的能力——拆解条件、找约束、找不变量、验证边界。本篇覆盖最高频的四大类:信息量与编码(称重/药丸)、状态转移(分水/计时)、逻辑推理(真假话/标签/握手)、公共知识(囚犯与灯泡),共 14 题,每题都给出"可迁移的套路"。
导语:行为型模式是面试最常问"项目怎么用"的一章。本篇讲透观察者、策略、状态、责任链、模板方法五个高频模式的原理与落地,说清「策略 vs 状态」这组最易混的对比、状态机框架选型、其余行为型速览;最后给出三组高频综合设计题(支付系统、订单系统,以及如何判断该用哪个模式)与"你项目里用了什么设计模式"的高分答法,共 12 题。
导语:结构型模式是面试最爱挖源码的一章——「JDK 动态代理和 CGLIB 有什么区别」「Spring AOP 用哪个」几乎是必问;而「装饰器 vs 代理」是最容易混淆的一组。本篇拆开适配器的两种实现、代理三件套(静态代理 / JDK Proxy / CGLIB)与 Spring AOP 的代理选择规则、装饰器与 Java IO、桥接与 JDBC,并系统盘点 Spring / JDK / Netty / Dubbo 中的设计模式,共 12 题。
导语:设计模式面试的第一层是「原则」——不背原则直接讲模式,会被认为是"背了 23 个名字";第二层是「创建型」——单例、工厂、Builder 是真正的必考项。本篇给出设计模式的标准答题结构、SOLID 五原则的落地口径、工厂三兄弟的准确区分、单例的六种写法与三种破坏方式,以及 Builder/原型的适用边界,共 11 题。
导语:这一篇补上 MyBatis 面试的"最后一公里"——结果映射怎么把
ResultSet变成对象(resultMap/autoMappingBehavior/TypeHandler在ResultSetHandler里的落地)、一对一/一对多的两种写法与 N+1 问题、延迟加载的代理原理与三个真实事故级坑(含"Session 关闭后访问"到底抛什么异常),最后回到选型视角:MyBatis 为什么叫半自动 ORM、与 Hibernate 怎么选、与 Spring 是怎么整合的,共 12 题。
导语:这一篇讲 MyBatis 的"可扩展性"与"骨架"。插件部分要说清:为什么只能拦截四大接口、JDK 动态代理 + 责任链是怎么串起来的、分页插件为什么能做到物理分页、PageHelper 的 count 与深分页怎么优化;骨架部分要能一口气说出 SqlSessionFactory → SqlSession → Executor → StatementHandler → ResultSetHandler 的完整链路,以及 Mapper 接口没有实现类却能调用的原因(JDK 动态代理 +
MapperRegistry),共 13 题。
导语:缓存是 MyBatis 面试区分度最高的一章——一级缓存的失效场景、
CacheKey的组成、二级缓存为什么"不提交读不到"、装饰器链的层层包装,答不出细节就只能停在"有两级缓存"。本篇再往下扎一层:Executor 三种类型的取舍、BatchExecutor的两个硬伤、批量插入的性能真相(rewriteBatchedStatements),最后把 Executor → CachingExecutor → LocalCache 的调用链串起来,共 12 题。
导语:MyBatis 的第一层考点是「SQL 安全」——
#{}与${}的区别能背,但能讲清"预编译为什么能防注入"、${}到底什么时候非用不可、怎么把它用安全,才算过关。第二层是「参数绑定」——多参、自增主键、jdbcType/TypeHandler这些"一用就出错"的细节。第三层是「动态 SQL」——foreach/where/set/trim/bind/sql-include的用法与底层SqlNode原理,共 13 题。
导语:网关是微服务的"唯一入口",配置中心是"运行时的方向盘",二者共同决定了系统的可控性。本篇讲透 Gateway 的核心模型与工作流程(Predicate/Filter、响应式线程模型)、鉴权与限流落地、动态路由与灰度,再到 Config vs Nacos、长轮询与配置优先级、Spring Cloud Bus,最后收口到微服务拆分原则、链路追踪与技术选型,共 13 题。
