作品简介

这本书以源码分析为基础,从运行时、垃圾回收器、即时编译器3个维度全面、深入解析HotSpot VM的底层实现和工作机制,同时与上层的Java语言和库结合,指导读者解决JVM开发、JVM调优和JVM排错方面遇到的各种问题。

广度与深度兼顾:广度上涵盖Graal VM、CDS、Instrumentation、编译重放、非标准字节码、RTM锁、JIT调试工具、EpsilonGC/ShenandoahGC/ZGC、G1字符串去重等重要知识点;深度上深入解析了C1、C2、G1GC、ObjectMonitor、Mutex、模板解释器等的底层实现。

杨易,Java开发工程师,就职于阿里云基础设施部。热衷于研究编程语言的设计与实现,对Java语言的设计与实现有非常深入的研究,尤其是Java的虚拟机HotSpot VM,在JVM的开发、调优和排错方面积累了丰富的经验。此外,在编译器领域也有较深厚的积累。

作品目录

  • 前言
  • 第1章 Java大观园
  • 1.1 OpenJDK
  • 1.2 JEP
  • 1.3 Java虚拟机
  • 1.4 HotSpot VM
  • 1.5 Graal VM
  • 1.6 本章小结
  • 第2章 类可用机制
  • 2.1 类的加载
  • 2.2 类的链接
  • 2.3 类的初始化
  • 2.4 类的重定义
  • 2.5 本章小结
  • 第3章 对象和类
  • 3.1 对象与类
  • 3.2 对象
  • 3.3 类
  • 3.4 本章小结
  • 第4章 运行时
  • 4.1 线程创生纪
  • 4.2 Java线程
  • 4.3 栈帧
  • 4.4 Java/JVM沟通
  • 4.5 Unsafe类
  • 4.6 本章小结
  • 第5章 模板解释器
  • 5.1 解释器体系
  • 5.2 机器代码片段
  • 5.3 CodeCache
  • 5.4 指令缓存刷新
  • 5.5 解释器生成
  • 5.6 本章小结
  • 第6章 并发设施
  • 6.1 指令重排序
  • 6.2 内存模型
  • 6.3 基础设施
  • 6.4 锁优化
  • 6.5 本章小结
  • 第7章 编译概述
  • 7.1 编译器简介
  • 7.2 即时编译技术
  • 7.3 编译理论基础
  • 7.4 调试方法
  • 7.5 本章小结
  • 第8章 C1编译器
  • 8.1 编译流程
  • 8.2 从字节码到HIR
  • 8.3 HIR代码优化
  • 8.4 从HIR到LIR
  • 8.5 本章小结
  • 第9章 C2编译器
  • 9.1 编译流程
  • 9.2 构造理想图
  • 9.3 机器无关优化
  • 9.4 代码生成
  • 9.5 本章小结
  • 第10章 垃圾回收
  • 10.1 垃圾回收基础概述
  • 10.2 Epsilon GC
  • 10.3 Serial GC
  • 10.4 Parallel GC
  • 10.5 CMS GC
  • 10.6 G1 GC
  • 10.7 Shenandoah GC
  • 10.8 ZGC
  • 10.9 本章小结
  • 第11章 G1 GC
  • 11.1 G1 GC简介
  • 11.2 Young GC
  • 11.3 Mixed GC
  • 11.4 Full GC
  • 11.5 字符串去重
  • 11.6 本章小结
展开全部