面试知识

查漏补全:精通级补强计划

00-总览与路线 面试知识整理。

查漏补全:精通级补强计划

1. 计划目标

本计划用于指导后续把面试知识库从“核心骨架”补强到“精通级体系”。后续每一轮写作都必须围绕一个目标:不仅知道概念,还要能讲清底层机制、数据流、生命周期、失败场景、排查路径、项目落地和面试追问。

当前第一批模块已经覆盖 Java(编程语言)并发、JVM(Java 虚拟机)、Redis(远程字典服务)、MySQL(关系型数据库)核心主线,但仍然不够全面。后续需要按本计划逐项补齐,避免再出现“JVM(Java 虚拟机)生命周期漏掉”这类缺口。

2. 精通级验收标准

一个模块只有满足下面标准,才能认为达到精通级:

维度必须达到的标准
知识完整性覆盖基础概念、生命周期、核心组件、底层原理、常见参数、失败场景
图形化表达至少包含 Mermaid(图表语法)流程图、架构图或时序图
表格对比至少有关键方案、组件、机制、场景的对比表
数据演绎对事务、锁、队列、GC(垃圾回收)、缓存一致性等必须用具体数据推演
排查经验必须有线上 SOP(标准操作流程)、命令、指标、现象到根因的路径
项目绑定必须绑定简历里的 WMS(仓储管理系统)、跨境物流、库存、支付、异步任务、IoT(物联网)经历
面试话术必须有可直接复述的回答模板和常见追问
自包含答案每道知识题必须有回答思路、详细答案、进阶追问和进阶回答,读者无需再去其他资料寻找核心结论
英文标注英文技术词每次出现都按 English(中文意思) 标注

3. 第一批模块缺口审计

3.1 Java(编程语言)并发与锁体系

当前已覆盖:线程状态、JMM(Java 内存模型)、volatile(可见性关键字)、synchronized(同步锁)、CAS(比较并交换)、AQS(抽象队列同步器)、线程池。

后续必须补强:

  • Java(编程语言)核心基础:Object(对象基类)、String(字符串)、final(最终)、static(静态)、泛型、反射、注解、异常体系。
  • 集合体系:ArrayList(数组列表)、LinkedList(链表)、HashMap(哈希表)、LinkedHashMap(链式哈希表)、TreeMap(树映射)、HashSet(哈希集合)。
  • HashMap(哈希表)底层:数组、链表、红黑树、扩容、扰动函数、树化、退化、为什么线程不安全。
  • ConcurrentHashMap(并发哈希表):JDK(Java 开发工具包)7 分段锁、JDK(Java 开发工具包)8 CAS(比较并交换)+ synchronized(同步锁)、size(大小)统计、扩容协助。
  • ThreadLocal(线程本地变量):ThreadLocalMap(线程本地映射)、弱引用、内存泄漏、线程池场景清理。
  • 内存屏障:LoadLoad(读读屏障)、LoadStore(读写屏障)、StoreStore(写写屏障)、StoreLoad(写读屏障)。
  • LongAdder(高并发累加器)、Atomic(原子类)、StampedLock(戳锁)、CompletableFuture(异步编排)、ForkJoinPool(分治线程池)。
  • 线程池深水区:队列选择、拒绝策略、线程工厂、异常处理、上下文传递、MDC(映射诊断上下文)、线程池隔离。
  • 面试数据演绎:HashMap(哈希表)扩容过程、ThreadLocal(线程本地变量)泄漏过程、线程池拒绝与重试风暴。

建议处理方式:

  • 新增 09-Java核心基础与集合.md,避免把 10-Java并发与锁体系.md 写成过大杂糅文档。
  • 补强 10-Java并发与锁体系.md 的高级并发工具、内存屏障、线程池实战。

3.2 JVM(Java 虚拟机)与线上排障

当前已补强:JVM(Java 虚拟机)生命周期、类生命周期、对象生命周期、内存结构、类加载、GC(垃圾回收)基础、OOM(内存溢出)排查、CPU(中央处理器)飙高排查。

后续必须补强:

  • Class File(类文件)结构:魔数、版本号、常量池、字段表、方法表、属性表。
  • 字节码执行:操作数栈、局部变量表、动态链接、方法返回地址。
  • 执行引擎:解释器、JIT(即时编译)、C1(客户端编译器)、C2(服务端编译器)、热点探测。
  • JIT(即时编译)优化:逃逸分析、栈上分配、标量替换、锁消除、锁粗化。
  • 引用类型:强引用、软引用、弱引用、虚引用、ReferenceQueue(引用队列)。
  • GC(垃圾回收)收集器:Serial(串行收集器)、Parallel(并行收集器)、CMS(并发标记清除)、G1(垃圾优先回收器)、ZGC(低延迟垃圾回收器)、Shenandoah(低延迟垃圾回收器)。
  • GC(垃圾回收)日志:如何读停顿时间、回收前后容量、Full GC(完全垃圾回收)原因。
  • JVM(Java 虚拟机)参数:堆、元空间、直接内存、线程栈、GC(垃圾回收)日志、HeapDump(堆转储)。
  • 容器化内存:Docker(容器技术)/Kubernetes(容器编排平台)下 MaxRAMPercentage(最大内存百分比)、容器 OOM(内存溢出)和 JVM(Java 虚拟机)OOM(内存溢出)区别。
  • Native Memory(本地内存):DirectBuffer(直接缓冲区)、JNI(Java 本地接口)、线程栈、内存映射文件。
  • 项目数据演绎:大批量导出、PDF(便携式文档格式)合并、OkHttp(HTTP 客户端)未单例、线程池堆积导致内存无法释放。

建议处理方式:

  • 11-JVM与线上排障.md 增加“字节码与执行引擎”“JIT(即时编译)优化”“GC(垃圾回收)收集器与参数”“容器化排障”四个大节。

3.3 Redis(远程字典服务)从基础到精通

当前已覆盖:数据类型、单线程模型、I/O(输入输出)多路复用、RDB(快照持久化)、AOF(追加日志)、主从、哨兵、集群、分布式锁、ZSet(有序集合)延迟队列。

后续必须补强:

  • 底层结构细节:SDS(简单动态字符串)、dict(哈希字典)、渐进式 rehash(重新哈希)、skiplist(跳表)、quicklist(快速列表)、listpack(紧凑列表)。
  • 命令生命周期:客户端请求、协议解析、事件循环、命令执行、响应写回。
  • Redis(远程字典服务)事务:MULTI(开启事务)、EXEC(执行事务)、WATCH(监视)、不支持回滚的原因。
  • Pipeline(管道)、Pub/Sub(发布订阅)、Stream(流)和 Consumer Group(消费者组)。
  • 复制细节:复制积压缓冲区、部分重同步、主从延迟、读写一致性。
  • 哨兵细节:主观下线、客观下线、投票、故障转移、配置纪元。
  • 集群细节:slot(槽)迁移、MOVED(重定向)、ASK(临时重定向)、resharding(重新分片)、hash tag(哈希标签)。
  • 内存治理:big key(大键)、hot key(热键)、内存碎片、lazy free(惰性释放)、慢查询、延迟监控。
  • 缓存一致性:Cache Aside(旁路缓存)、延迟双删、订阅 binlog(二进制日志)、最终一致性。
  • 布隆过滤器、限流、排行榜、签到、附近的人、去重统计等场景。
  • RedLock(红锁)争议:安全假设、时钟漂移、网络分区、业务兜底。

建议处理方式:

  • 12-Redis从基础到精通.md 增加“底层结构深挖”“高可用细节”“缓存一致性”“场景题库”。

3.4 MySQL(关系型数据库)与分库分表

当前已覆盖:B+Tree(多路平衡树)、索引、MVCC(多版本并发控制)、三大日志、锁、死锁、慢 SQL(结构化查询语言)、分库分表。

后续必须补强:

  • InnoDB(事务存储引擎)物理结构:表空间、段、区、页、行格式、页目录。
  • Buffer Pool(缓冲池):LRU(最近最少使用)链表、Flush List(刷盘链表)、Free List(空闲链表)、预读、脏页刷盘。
  • Change Buffer(变更缓冲)、Doublewrite Buffer(双写缓冲)、Adaptive Hash Index(自适应哈希索引)。
  • redo log(重做日志)刷盘:write(写入)、fsync(同步刷盘)、innodb_flush_log_at_trx_commit(事务提交刷盘策略)。
  • binlog(二进制日志)格式:STATEMENT(语句)、ROW(行)、MIXED(混合)、GTID(全局事务标识)。
  • 主从复制:异步复制、半同步复制、复制延迟、主从切换。
  • 优化器:索引选择、统计信息、ICP(索引条件下推)、MRR(多范围读取)、覆盖索引、联合索引最左前缀。
  • Join(连接)算法:Nested Loop Join(嵌套循环连接)、Block Nested Loop(块嵌套循环)、Hash Join(哈希连接)。
  • 锁深水区:插入意向锁、自增锁、谓词锁、MDL(元数据锁)、锁等待链路。
  • Online DDL(在线数据定义语言)、大表变更、数据归档、备份恢复。
  • 分库分表深水区:分片键选择、雪花算法、跨库分页、跨库聚合、分布式事务、扩容迁移、双写校验。

建议处理方式:

  • 13-MySQL与分库分表.md 增加“InnoDB(事务存储引擎)内部结构”“复制与恢复”“优化器与执行计划深挖”“分库分表落地细节”。

4. 第二批未成稿模块计划

第二批不能只写概念,要从一开始按精通级标准写:

文件必须覆盖
20-MQ消息队列.mdKafka(分布式日志消息系统)、RocketMQ(分布式消息队列)、RabbitMQ(消息队列)、可靠性、顺序、事务、延迟、重试、死信、幂等、消息堆积排查
21-分布式系统与微服务.md单体到微服务演进、CAP(一致性、可用性、分区容错)、BASE(基本可用、软状态、最终一致)、DDD(领域驱动设计)、分布式事务、限流熔断、灰度、幂等、补偿
22-Spring生态与后端工程.mdSpring(Java 应用框架)容器、Bean(对象实例)生命周期、AOP(面向切面编程)、事务、Spring Boot(快速开发框架)自动配置、Spring Security(安全框架)、MyBatis(持久层框架)
23-Zookeeper与协调服务.mdZAB(原子广播协议)、选举、临时顺序节点、Watcher(监听器)、分布式锁、注册发现、配置中心、与 Redis(远程字典服务)锁对比

5. 第三批与项目话术计划

第三批和第四批要把“工程经验”补足:

文件必须覆盖
30-Linux网络与Netty.mdLinux(操作系统)命令、CPU(中央处理器)/内存/磁盘/网络排查、TCP(传输控制协议)、HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、MQTT(消息队列遥测传输协议)、Netty(网络通信框架)线程模型
31-存储搜索时序.mdPostgreSQL(关系型数据库)、MongoDB(文档数据库)、ClickHouse(列式数据库)、Elasticsearch(搜索引擎)、物化视图、倒排索引、集群、备份、迁移
32-DevOps与可观测性.mdDocker(容器技术)、Jenkins(持续集成工具)、CI/CD(持续集成/持续交付)、Kubernetes(容器编排平台)、ELK(日志系统)、Prometheus(监控系统)、SkyWalking(链路追踪系统)
40-支付资金一致性与项目话术.md已成稿:支付交易模型、多渠道接入、Webhook(回调通知)、主动查单、分层幂等、余额账务、退款冲正、Reconciliation(对账)、Billing(出账)、Settlement(结算)、海外仓履约、面单轨迹、异常补偿
41-前端全栈补充.mdVue3(前端框架)、React(前端框架)、Nuxt3(Vue 服务端渲染框架)、TypeScript(类型脚本)、SSR(服务端渲染)、SSG(静态站点生成)、SEO(搜索引擎优化)

6. 推荐执行顺序

第一阶段:修正第一批“已完成但不够深”的模块

  1. 新增 09-Java核心基础与集合.md
  2. 补强 10-Java并发与锁体系.md
  3. 继续补强 11-JVM与线上排障.md
  4. 补强 12-Redis从基础到精通.md
  5. 补强 13-MySQL与分库分表.md

第二阶段:写第二批模块

  1. 20-MQ消息队列.md
  2. 21-分布式系统与微服务.md
  3. 22-Spring生态与后端工程.md
  4. 23-Zookeeper与协调服务.md

第三阶段:写工程能力模块

  1. 30-Linux网络与Netty.md
  2. 31-存储搜索时序.md
  3. 32-DevOps与可观测性.md

第四阶段:写项目话术与全栈补充

  1. 已完成 40-支付资金一致性与项目话术.md,并扩展支付交易、资金一致性、供应商结算、海外仓履约、面单轨迹和异常补偿。
  2. 41-前端全栈补充.md
  3. 新增 90-项目串讲与面试话术总集.md,把所有知识点绑定到简历项目。
  4. 新增 91-高频追问题库.md,按技术栈整理高频追问。

第五阶段:架构师面试能力层

  1. 已新增 50-架构师思维与架构设计.md
  2. 已新增 51-技术选型与解决方案设计.md
  3. 已新增 52-架构案例与项目方案库.md
  4. 已新增 92-架构师高频追问题库.md
  5. 已新增 93-架构设计口述模板.md
  6. 已新增 94-系统设计题训练.md
  7. 后续可继续补充架构评审、组织治理、成本治理、平台化建设和真实面试复盘。

7. 每轮补强的固定流程

每次补一个模块时,按下面步骤执行:

  1. 读取 00-项目说明-续接必读.md03-成稿进度看板.md04-英文术语标注规范.md 和本文件。
  2. 对目标模块先做 heading(标题)审计,列出已有章节。
  3. 对照本计划找缺口。
  4. 先补“生命周期、底层组件、数据流、失败场景”。
  5. 再补 Mermaid(图表语法)图、表格、数据演绎。
  6. 最后补面试话术、高频追问、复习清单。
  7. 更新 03-成稿进度看板.md 的下一步说明。

7.1 章节级热门面试题补充规范

后续所有正式模块都必须按章节补充热门面试题,不能只在文末放一个总题库。

执行规则:

位置要求
每个知识型 ### 小节增加 #### 热门面试题
每个小节题量至少 3 道,覆盖基础题、原理题、项目追问题
每道题格式必须包含“问题、考点、回答思路、详细答案、进阶追问、进阶回答”
模块级题库## 10. 高频面试题与追问 至少扩展到 20 道题
内容要求不能只背八股,要包含失败场景、线上排查、项目落地
英文标注英文技术词每次出现都必须标注中文

章节级题目的目标是让阅读者在每个知识点旁边立刻看到面试会怎么问、该怎么答、面试官可能怎么追问。

详细答案的深度、图解触发条件、分批顺序和自动验收指标以 07-详细答案与图解补强计划.md 为准。不得使用“先定义、再讲作用、最后结合项目”这类与具体问题无关的通用占位答案。

8. 质量红线

  • 不能只写概念定义,必须写“为什么”和“怎么工作”。
  • 不能只写八股答案,必须绑定项目场景。
  • 不能只写文字,必须有图、表、数据演绎。
  • 不能把 Redis(远程字典服务)锁、MySQL(关系型数据库)事务、MQ(消息队列)可靠性这类问题写成单点方案,必须写风险和兜底。
  • 不能把模块标记为“已完成”后就不再审计;用户反馈缺口时,优先更新本计划和进度看板。

9. 下一步建议

下一轮优先执行第一阶段第 3 步:继续补强 11-JVM与线上排障.md。重点补充字节码与执行引擎、JIT(即时编译)优化、GC(垃圾回收)收集器与参数、容器化内存排障。09-Java核心基础与集合.md 已新增,10-Java并发与锁体系.md 已补高级并发速记,后续可根据面试反馈继续加题。