Skip to content

JVM 知识文库 — 设计文档

状态:✅ 已确认,批次 1 实施中 定位:大厂 Java 面试 · JVM 核心知识体系


一、总体架构

📁 JVM-Knowledge-Base/

├── 📁 01-字节码与Class文件/        ← 批次 1
│   ├── 00-字节码索引.md
│   ├── 01.1-Class文件结构.md
│   ├── 01.2-字节码指令集概览.md
│   ├── 01.3-实战javap反汇编分析.md
│   └── 01.4-ASM与Javassist字节码操作入门.md

├── 📁 02-类加载机制/               ← 批次 1
│   ├── 00-类加载索引.md
│   ├── 02.1-类加载生命周期.md
│   ├── 02.2-双亲委派模型与打破.md
│   ├── 02.3-自定义类加载器实战.md
│   ├── 02.4-Tomcat与Spring类加载分析.md
│   └── 02.5-OSGI与SPI模块化.md

├── 📁 03-运行时数据区/             ← 批次 1
│   ├── 00-运行时数据区索引.md
│   ├── 03.1-程序计数器.md
│   ├── 03.2-Java虚拟机栈.md
│   ├── 03.3-本地方法栈.md
│   ├── 03.4-Java堆.md
│   ├── 03.5-方法区与元空间.md
│   ├── 03.6-运行时常量池.md
│   └── 03.7-直接内存.md

├── 📁 04-对象分配与内存布局/       ← 批次 2
├── 📁 05-GC机制/                   ← 批次 2
├── 📁 06-JVM调优与排查/            ← 批次 3
├── 📁 07-执行引擎与JIT/            ← 批次 3
├── 📁 08-Java内存模型与并发/       ← 批次 4
├── 📁 09-前沿与新特性/             ← 批次 4
└── 📁 面试专题/                    ← 批次 4

二、笔记模板

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

---
aliases: [中文别名, 英文别名]
tags: [JVM, 子领域, 面试]
created: 2026-06-15
---

# 0X - 板块标题

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

## 📖 子专题导航
| # | 主题 | 面试频率 | 说明 |
|---|------|---------|------|
| ... |

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

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

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

---
aliases: [中文别名]
tags: [JVM, 子领域, 面试]
created: 2026-06-15
---

# 0X.X - 主题名

> **面试高频度**:⭐⭐⭐⭐⭐
> **考查方式**:XXX

## 一、这是什么?为什么需要它?
(定位问题本质 — "JVM 为什么要 XXX?")

## 二、原理拆解
(为什么有这个 → 在系统中起什么作用 → 结构图解)

## 三、图解全景
(ASCII 架构图 / 内存布局图 / 流程图)

## 四、实战验证
(javap 输出分析 / 代码示例 / 调优案例)

## 五、面试视角
(高频追问表格 — 理解原理后答案自然得出)

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

三、内容原则

优先级原则说明
1原理优先先讲清楚"为什么",建立心智模型
2图解驱动ASCII 架构图、流程图、内存布局图——让读者"看到"原理
3面试佐证面试题作为原理的巩固检验,非主线
4表格对比对比类知识用表格
5Wiki 互联跨板块引用用 [[wiki-link]]
6参数速查调优板块重点做参数速查表
7实战案例排查方法论 + 真实案例

四、链接策略

链接类型规则示例
向下链接正文引用后续详述主题用 [[ ]][[02.1-类加载生命周期]]
向上回链子笔记末尾加入返回索引链接← 返回 [[00-字节码索引]]
跨板块链接GC 链对象布局、调优链 GC 收集器详见 [[04.2-对象内存布局]]
面试汇聚面试 100 题每道链接回原理笔记详见 [[05.3-垃圾收集器详解]]

五、交付批次

批次板块笔记数核心链路
101 字节码 + 02 类加载 + 03 运行时数据区19Class 文件 → 加载 → 内存
204 对象分配 + 05 GC 机制~11对象创建 → 布局 → 回收
306 调优排查 + 07 执行引擎与 JIT~12排查定位 → JIT 提速
408 JMM 并发 + 09 前沿新特性 + 面试专题~10+进阶收官 + 综合演练

六、批次 1 内容大纲

01 — 字节码与 Class 文件

笔记核心原理关键图解
00-索引Class 文件在 JVM 体系中的位置源码→编译→加载→执行 全链路图
01.1-Class文件结构每个字段设计动机(魔数防伪、版本号控制、常量池解耦)十六进制结构图 + 偏移量标注
01.2-字节码指令集栈式 vs 寄存器式取舍;指令分类逻辑栈帧操作示意图
01.3-javap实战从源码到字节码的翻译规则javap -verbose 逐区域标注
01.4-ASM与Javassist直接操作字节码 vs 源码字符串操作ASM 事件模型流程图

02 — 类加载机制

笔记核心原理关键图解
00-索引类加载在 JVM 运行中的角色类加载生命周期时间线
02.1-生命周期7 阶段为什么交错而非串行阶段交错并行图
02.2-双亲委派委派的安全动机;打破的 SPI 动机三层 ClassLoader 层级图
02.3-自定义类加载器findClass vs loadClass 职责分离加载流程图
02.4-Tomcat与SpringWeb 隔离需求;Spring Boot fat jar 机制Tomcat 多级 ClassLoader 树
02.5-OSGI与SPI层级委派 → 网状依赖OSGI Bundle 依赖网对比图

03 — 运行时数据区

笔记核心原理关键图解
00-索引线程私有 vs 共享的划分逻辑JVM 内存全景布局图
03.1-程序计数器唯一不 OOM 的区域;线程切换恢复机制CPU 线程切换 → PC 指向图
03.2-虚拟机栈栈帧四部件协作原理栈帧结构图 + 调用链帧栈图
03.3-本地方法栈HotSpot 实际合二为一JNI 调用栈切换图
03.4-堆分代设计逻辑堆分代结构图 + 对象流动方向
03.5-方法区与元空间PermGen→Metaspace 的变迁动机对比图 + StringTable 变迁
03.6-运行时常量池静态模板 vs 动态实例符号引用→直接引用 转换图
03.7-直接内存NIO 用直接内存避免复制堆 I/O vs 直接 I/O 路径对比

设计确认时间: 2026-06-15

Knowledge4J — Java 知识库