Skip to content

Java 知识文库 — 设计文档

状态:✅ 已确认,批次 1 实施中 定位:大厂 Java 面试 · Java SE 核心 + 生态体系知识库 — 从语言基础到底层原理再到框架生态


一、总体架构

📁 avazoe/Java/

├── 📄 00-Java文库设计文档.md           ← 总纲(本文档)
├── 📄 00-批次1实施计划.md              ← 实施计划

├── 📁 01-Java语言基础/                 ← 批次 1
├── 📁 02-面向对象核心/                 ← 批次 1
├── 📁 03-集合框架/                     ← 批次 1
├── 📁 04-泛型与注解/                   ← 批次 2
├── 📁 05-异常与日志/                   ← 批次 2
├── 📁 06-IO与NIO/                      ← 批次 2
├── 📁 07-Lambda与Stream/               ← 批次 2
├── 📁 08-多线程与并发/                 ← 批次 3
├── 📁 09-包装类与时间API/              ← 批次 3
├── 📁 10-单元测试/                     ← 批次 3
├── 📁 11-MyBatis持久层框架/            ← 批次 4
├── 📁 12-SpringBoot与Web开发/          ← 批次 4
├── 📁 13-Redis/                        ← 批次 4

└── 📁 面试专题/                        ← 批次 4
    ├── 📄 面试高频100题.md
    └── 📄 综合真题解析.md

依赖关系

批次 1(地基):语言基础 → 面向对象 → 集合框架

批次 2(进阶):泛型注解 → 异常IO → Lambda/Stream

批次 3(并发与工具):多线程 → 包装类/时间 → 单元测试

批次 4(生态):MyBatis → SpringBoot → Redis → 面试专题

二、笔记模板

导航索引页模板(00-XX索引.md

markdown
---
aliases: [中文别名, 英文别名]
tags: [Java, 子领域, 索引]
created: 2026-07-16
---

# 0X - 板块标题

> **定位**:板块在 Java 体系中的位置
> **面试高频度**:⭐⭐⭐⭐⭐

## 📖 子专题导航
| # | 主题 | 面试频率 | 说明 |
|---|------|---------|------|
| [[链接]] | 名称 | ⭐⭐⭐ | 一句话说明 |

## 🧠 知识全景图
\`\`\`
(ASCII 架构图)
\`\`\`

## 🔑 核心考点速记
(2-3 个最高频考点精简版)

## 📚 相关文件
- [[上游板块]] — 关系说明
- [[00-Java文库设计文档]]

深度原理页模板(0X.X-主题名.md

markdown
---
aliases: [中文别名]
tags: [Java, 子领域, 面试]
created: 2026-07-16
---

# 0X.X - 主题名

> **面试高频度**:⭐⭐⭐⭐⭐
> **考查方式**:常见考察角度

## 一、这是什么?为什么需要它?
(定义 + 动机 — 没有它会怎样?)

## 二、原理拆解
(每个子概念回答"为什么")

## 三、图解全景
\`\`\`
(ASCII 架构图 / 流程图 / 对比图)
\`\`\`

## 四、实战验证
(代码示例 / 命令行 / 基准测试)

## 五、面试视角
| 追问 | 答案要点 |
|------|---------|
| Q1 | 精炼答案 |

## 📚 相关链接
- [[上游主题]]
- [[下游主题]]
- ← 返回 [[00-XX索引]]

三、内容原则

优先级原则说明
1原理优先每个概念先回答"为什么需要",建立心智模型
2图解驱动每篇深度笔记至少 1 张 ASCII 图解
3面试佐证面试题作为原理的巩固检验,非主线
4表格对比对比类知识用表格,维度一致
5Wiki 互联跨板块引用 [[wiki-link]],形成知识网络
6参数速查框架板块重点做速查表
7实战案例排查方法论 + 真实场景

四、链接策略

链接类型规则示例
向下链接正文引用后续详述主题详见 [[03.2-HashMap核心原理]]
向上回链深度笔记末尾返回索引← 返回 [[00-集合索引]]
跨板块链接相关领域交叉引用线程安全集合 → [[08.2-线程安全]]
JVM 互联Java 知识链接到 JVM 原理JMM 模型 → [[avazoe/JVM/08-Java内存模型与并发/00-JMM索引]]
面试汇聚面试题链接回原理笔记详阅 [[03.2-HashMap核心原理]]

五、交付批次

批次板块笔记数核心链路
101 语言基础 + 02 面向对象 + 03 集合框架~10变量→对象→集合
204 泛型注解 + 05 异常 + 06 IO/NIO + 07 Lambda/Stream~12类型系统→IO→函数式
308 多线程并发 + 09 包装类/时间 + 10 单元测试~10线程安全→API→测试
411 MyBatis + 12 SpringBoot + 13 Redis + 面试专题~12持久化→Web→缓存→面试

六、内容大纲(分板块详细规划)

01 — Java语言基础

来源:Java_base/Java基础-完全指南.md(重构)

笔记核心原理关键图解
00-语言基础索引类型系统在 Java 中的角色数据类型全景图
01.1-数据类型与运算符8种基本类型为什么这样设计;自动类型转换规则类型取值范围图 + 转换方向图
01.2-String深度解析不可变性的设计动机;常量池复用;StringBuilder 为何可变String 常量池结构图
01.3-Object类与通用方法equals/hashCode 契约;clone 深浅拷贝;finalizeequals vs == 对比图

02 — 面向对象核心

来源:Java_base/Java基础-完全指南.md(重构)

笔记核心原理关键图解
00-OOP索引OOP 为何诞生——管理复杂度的思想面向过程 vs 面向对象对比图
02.1-三大特性(封装继承多态)为什么需要封装?继承的利弊权衡;多态的实现原理多态方法分派流程图
02.2-抽象类与接口对比设计动机差异:模板 vs 契约;Java 8 后接口进化抽象类 vs 接口对比图
02.3-内部类与匿名类为什么需要内部类——访问外部类的动机内部类编译后 class 文件结构

03 — 集合框架

来源:Java_base/Java基础-集合框架详解.md(840行,核心内容保留)

笔记核心原理关键图解
00-集合索引集合框架的整体设计哲学Collection vs Map 分支全景图
03.1-List体系ArrayList vs LinkedList 数据结构取舍数组 vs 链表内存布局对比图
03.2-HashMap核心原理哈希表的动机;扩容与红黑树优化HashMap put 流程全链路图
03.3-ConcurrentHashMap分段锁 → CAS + synchronized 的演进JDK7 vs JDK8 并发控制对比图
03.4-Set与QueueSet 的去重原理;Queue 的解耦设计TreeSet 红黑树 / 队列模型图

04 — 泛型与注解

来源:Java_base/Java基础-完全指南.md + SpringBoot-JavaWeb-注解知识文库.md

笔记核心原理关键图解
00-泛型注解索引泛型——编译期类型安全的动机泛型擦除机制图
04.1-泛型原理与类型擦除为什么 Java 泛型用擦除而非特化编译前后类型信息对比
04.2-通配符与边界? extends / ? super 的 PECS 原则协变逆变对比图
04.3-注解体系注解 = 元数据;编译期 vs 运行时保留策略注解处理生命周期图

05 — 异常与日志

来源:Java_base/Java基础-完全指南.md + R扩展

笔记核心原理关键图解
00-异常索引异常机制——错误与正常逻辑分离异常类层级图
05.1-异常体系结构Checked vs Runtime 的设计哲学try-catch-finally 执行流程图
05.2-异常最佳实践选择异常类型、异常丢失、性能影响异常链设计图

06 — IO与NIO

来源:Java_advanced/Java IO流详解.md(1422行,核心内容保留)

笔记核心原理关键图解
00-IO索引IO 系统设计分类IO 流家族全景图
06.1-字节流与字符流为什么需要字符流——编码问题InputStream/Reader 层级图
06.2-缓冲流与装饰器模式装饰器模式在 IO 中的应用多层包装流数据流向图
06.3-NIO核心非阻塞动机——线程复用BIO vs NIO 线程模型对比
06.4-序列化机制序列化解决什么问题序列化/反序列化过程图

07 — Lambda与Stream

来源:Java_advanced/Stream流收集数据与Lambda详解.md + 方法引用详解.md

笔记核心原理关键图解
00-Lambda索引函数式编程在 Java 中的引入动机匿名类 → Lambda → 方法引用演进图
07.1-Lambda与函数式接口@FunctionalInterface 设计动机Lambda 语法糖编译过程
07.2-Stream流水线惰性求值的动机——链式操作如何避免中间集合Stream 操作三阶段图
07.3-Collectors收集器Collector 接口的累加器模型toMap 分组/分区流程
07.4-方法引用四种引用方式的适用场景:: 操作符四象限图

08 — 多线程与并发

来源:Java_advanced/Java多线程编程.md(578行);关联 avazoe/JVM/08-Java内存模型与并发/

笔记核心原理关键图解
00-并发索引并发编程核心三要素Java 并发全景图
08.1-线程基础与创建线程 vs 进程;创建方式的权衡线程状态迁移图
08.2-线程安全与锁synchronized 与 Lock 的设计对比锁膨胀过程 / AQS 队列图
08.3-并发工具类CountDownLatch、CyclicBarrier、SemaphoreAQS 共享/独占模式图
08.4-Executor与线程池线程池——复用线程的动机线程池 execute 全流程
→ JMMJMM、happens-before → **JMM索引**

09 — 包装类与时间API

来源:Java_advanced/Java包装类详解.md + Java时间类详解.md

笔记核心原理关键图解
00-包装类时间索引包装类存在的意义基本类型 vs 包装类内存对比
09.1-包装类详解自动装箱拆箱;Integer 缓存缓存池范围图
09.2-时间日期API演进Date → Calendar → java.time 的设计迭代时间 API 演进时间线
09.3-java.time 核心(新)LocalDateTime vs Instant vs ZonedDateTime新 API 类关系图

10 — 单元测试(JUnit & Mockito)

来源:JUnit/ 文件夹(2098行)

笔记核心原理关键图解
00-测试索引为什么需要单元测试测试金字塔图
10.1-JUnit5注解与断言Jupiter 编程模型的设计测试生命周期流程图
10.2-参数化测试数据驱动测试的动机@ParameterizedTest 执行流程
10.3-MockitoMock 隔离测试单元的原理Mock vs Stub vs Spy 对比
10.4-SpringBoot测试集成测试的切片加载动机@WebMvcTest / @DataJpaTest 切片

11 — MyBatis持久层框架

来源:MyBatis/ 文件夹(2315行)

笔记核心原理关键图解
00-MyBatis索引半自动 ORM 的设计位置MyBatis vs JDBC vs Hibernate
11.1-核心配置与SqlSessionSqlSessionFactoryBuilder 构建流程MyBatis 启动时序图
11.2-Mapper映射原理接口绑定——动态代理MapperProxy 调用流程图
11.3-动态SQL与关联查询动态 SQL 的动机——SQL 组合动态 SQL 解析树
11.4-缓存机制一级/二级缓存设计动机缓存查找链路图

12 — SpringBoot与Web开发

来源:SpringBoot-JavaWeb-注解知识文库.md(2063行)

笔记核心原理关键图解
00-SpringBoot索引SpringBoot 如何简化 Spring自动配置原理图
12.1-注解体系速查按层分类的注解全景Controller/Service/Repository 分层
12.2-Web层开发DispatcherServlet 请求处理SpringMVC 请求处理链路
12.3-数据访问与事务@Transactional 事务传播机制事务传播行为对比

13 — Redis

来源:Redis专项知识库.md(1608行)

笔记核心原理关键图解
00-Redis索引Redis 在 Java 架构中的角色缓存层在系统中的位置
13.1-数据结构5 种类型 + 底层编码编码转换条件图
13.2-持久化RDB vs AOF 设计取舍持久化策略选择树
13.3-高可用主从复制 + 哨兵 + 集群哨兵故障转移流程图
13.4-Java集成Jedis vs Lettuce vs RedissonJava Redis 客户端对比

七、JVM 互联策略

Java 知识库与已有 **JVM 知识库** 紧密关联:

Java 板块关联 JVM 板块链接方式
03 集合框架**运行时数据区** — 堆内存分配HashMap 哈希冲突解决详见 JVM 堆内存布局
06 IO/NIO**直接内存** — DirectBufferNIO 直接内存详见 JVM 直接内存原理
08 多线程并发**Java内存模型与并发** — JMMvolatile 语义详见 JMM 内存模型
08 多线程并发**锁升级过程** — 锁优化synchronized 实现详见锁升级过程
08 多线程并发**GC机制** — GC 影响GC 对并发性能的影响

设计确认时间: 2026-07-16

Knowledge4J — Java 知识库