# SUMMARY * [简介](./README.md) * [开篇词 | 为什么我们要学习Java虚拟机?](./docs/11074.md) * [01 | Java代码是怎么运行的?](./docs/11289.md) * [02 | Java的基本类型](./docs/11503.md) * [03 | Java虚拟机是如何加载Java类的?](./docs/11523.md) * [04 | JVM是如何执行方法调用的?(上)](./docs/11539.md) * [05 | JVM是如何执行方法调用的?(下)](./docs/12098.md) * [06 | JVM是如何处理异常的?](./docs/12134.md) * [07 | JVM是如何实现反射的?](./docs/12192.md) * [08 | JVM是怎么实现invokedynamic的?(上)](./docs/12564.md) * [09 | JVM是怎么实现invokedynamic的?(下)](./docs/12574.md) * [10 | Java对象的内存布局](./docs/13081.md) * [11 | 垃圾回收(上)](./docs/13091.md) * [12 | 垃圾回收(下)](./docs/13137.md) * [【工具篇】 常用工具介绍](./docs/12423.md) * [13 | Java内存模型](./docs/13484.md) * [14 | Java虚拟机是怎么实现synchronized的?](./docs/13530.md) * [15 | Java语法糖与Java编译器](./docs/13781.md) * [16 | 即时编译(上)](./docs/14061.md) * [17 | 即时编译(下)](./docs/14070.md) * [18 | 即时编译器的中间表达形式](./docs/14270.md) * [19 | Java字节码(基础篇)](./docs/14794.md) * [20 | 方法内联(上)](./docs/14575.md) * [21 | 方法内联(下)](./docs/14652.md) * [22 | HotSpot虚拟机的intrinsic](./docs/18046.md) * [23 | 逃逸分析](./docs/18048.md) * [24 | 字段访问相关优化](./docs/39683.md) * [25 | 循环优化](./docs/39814.md) * [26 | 向量化](./docs/39838.md) * [27 | 注解处理器](./docs/40189.md) * [28 | 基准测试框架JMH(上)](./docs/40275.md) * [29 | 基准测试框架JMH(下)](./docs/40281.md) * [30 | Java虚拟机的监控及诊断工具(命令行篇)](./docs/40520.md) * [31 | Java虚拟机的监控及诊断工具(GUI篇)](./docs/40821.md) * [32 | JNI的运行机制](./docs/40839.md) * [33 | Java Agent与字节码注入](./docs/41186.md) * [34 | Graal:用Java编译Java](./docs/41245.md) * [35 | Truffle:语言实现框架](./docs/41347.md) * [36 | SubstrateVM:AOT编译框架](./docs/41582.md) * [尾声 | 道阻且长,努力加餐](./docs/41800.md) * [结课测试 | 这些Java虚拟机的知识你都掌握了吗?](./docs/229456.md)