第1章JVM&GC基础知识 1
1.1引言 2
1.2基本术语 3
1.2.1 Java相关术语 4
1.2.2 JVM/GC通用术语 24
1.2.3 G 1涉及术语 56
1.3本章小结 62
第2章JVM&GC深入知识 63
2.1 Java虚拟机内存模型 64
2.1.1程序计数器 65
2.1.2虚拟机栈 66
2.1.3本地方法栈 72
2.1.4 Java堆 73
2.1.5方法区 79
2.2垃圾收集算法 82
2.2.1引用计数法 82
2.2.2根搜索算法 83
2.2.3标记-清除算法(Mark-Sweep ) 85
2.2.4复制算法(Copying ) 87
2.2.5标记-压缩算法(Mark-Compact) 89
2.2.6增量算法(Incremental Collecting) 90
2.2.7分代收集算法(Generational Collecting) 91
2.3 Garbage Collection 92
2.3.1 GC概念 92
2.3.2垃圾收集器分类 93
2.3.3 Serial收集器 94
2.3.4 ParNew收集器 96
2.3.5 Parallel收集器 99
2.3.6 CMS收集器 102
2.3.7 Garbage First ( G 1 ) GC 106
2.4常见问题解析 112
2.4.1 jmap -heap或-histo不能用 112
2.4.2 YGC越来越慢 112
2.4.3 Java永久代去哪儿了 114
2.5本章小结 116
第3章G1 GC应用示例 117
3.1范例程序 118
3.2选项解释及应用 124
3.3本章小结 166
第4章 深入G 1 GC 167
4.1 G1 GC概念简述 168
4.1.1背景知识 168
4.1.2 G1的垃圾回收机制 169
4.1.3 G1的区间设计灵感 169
4.2 G 1 GC分代管理 172
4.2.1年轻代 172
4.2.2年轻代回收暂停 173
4.2.3大对象区间 174
4.2.4混合回收暂停 176
4.2.5回收集合及其重要性 178
4.2.6 RSet及其重要性 178
4.2.7并行标记循环 182
4.2.8评估失败和完全回收 186
4.3 G1 GC使用场景 186
4.4 G 1 GC论文原文翻译(部分) 187
4.4.1开题 187
4.4.2数据结构/机制 188
4.4.3未来展望 190
4.5本章小结 191
第5章 G1 GC性能优化方案 192
5.1 G1的年轻代回收 193
5.2年轻代优化 203
5.3并行标记阶段优化 205
5.4混合回收阶段 207
5.4.1初步介绍 207
5.4.2深入介绍 208
5.5如何避免出现GC失败 210
5.6引用处理 211
5.6.1观察引用处理 212
5.6.2引用处理优化 213
5.7本章小结 214
第6章JVM诊断工具使用介绍 215
6.1 SA基础介绍 216
6.2 SA工具使用实践 217
6.2.1如何启动SA 217
6.2.2 SA原理及使用介绍 222
6.3其他工具介绍 231
6.3.1 GCHisto 231
6.3.2 JConsole 232
6.3.3 VisualVM 236
6.4本章小结 238