第1章?Java语言的起源 7
1.1?Java发展的艰辛历程 8
1.2?Java散发的独特魅力 10
1.3?网络时代带来的挑战 12
1.4?Java生态的体系结构 14
1.5?JVM的进化发展史 17
1.6?小结 19
第2章?初次接触JVM 20
2.1?通过Oracle JDK搭建运行环境 21
2.2?通过Open JDK搭建运行环境 29
2.3?Open JDK和Oracle JDK的关系 35
2.4?小结 36
第3章?迈向JVM的步 38
3.1?JVM内部七大“首脑” 39
3.2?JVM外部有利“辅助” 43
3.3?JVM内部对象的探索发掘 47
3.4?JVM的OOM异常 51
3.5?JVM的总体内存结构分布 54
3.6?小结 55
第4章?开始认识类加载系统 56
4.1?类加载系统的整体生命周期和流程 57
4.2?类加载系统为我们带来了什么 63
4.3?Class字节码的组成 70
4.4?小结 80
第5章?进入虚拟机核心世界 81
5.1?堆内存的“管辖范围” 82
5.2?内存管理系统回收垃圾 86
5.3?垃圾回收的类型 98
5.4?方法区 101
5.5?执行引擎子系统 105
5.6?对象描点标记的方法 107
5.7?对象描点标记的方法 110
5.8?小结 113
第6章?永远线程安全的区域 114
6.1?虚拟机栈和PC寄存器 115
6.2?虚拟机执行机制介绍 118
6.3?小结 122
第7章?虚拟机字节码指令集 123
7.1?字节码指令概述 124
7.2?字节码指令执行案例分析 134
7.3?小结 137
第8章?JVM深入分析运作原理 138
8.1?内存分配及回收的依据 139
8.2?内存分配及回收的策略 143
8.3?小结 146
第9章?JVM分析工具大全 147
9.1?JVM分析工具概述 148
9.2?常用JVM图形化分析工具概述 159
9.3?JVM在线性能分析服务 166
9.4?小结 172
第10章?Arthas分析JVM问题定位 173
10.1?Arthas学习指南 174
10.2?Arthas分析OOM问题定位 182
10.3?Arthas分析FullGC问题定位 185
10.4?Arthas分析线程方面问题定位 187
10.5?小结 190
第11章?程序的编译和代码优化 191
11.1?Java体系的3种编译器 192
11.2?JIT编译器 194
11.3?AOT编译器 199
11.4?编译技术的优化 200
11.5?逃逸分析技术 207
11.6?小结 212
第12章?Java内存模型和线程运作原理 213
12.1?Java内存模型 214
12.2?线程实现 223
12.3?线程安全控制 227
12.4?线程的锁优化 228
12.5?小结 231