JVM
新一代垃圾回收器ZGC设计与实现 豆瓣
2019 - 8
Java 11版本包含一个全新的垃圾收集器ZGC,它由Oracle开发,承诺在数TB的堆上具有非常低的暂停时间。ZGC是2017年Oracle公司贡献给OpenJDK社区的,正式成为OpenJDK的开源项目。ZGC 所针对的是这些在未来普遍存在的大容量内存:TB 级别的堆容量,具有很低的停顿时间(小于 10 毫秒),对整体应用性能的影响也很小(对吞吐量的影响低于 15%)。ZGC 所采用的机制也可以在未来进行扩展,以支持一些令人兴奋的特性,如多层堆(用于热对象的 DRAM 和用于低频访问对象的 NVMe 闪存)
或压缩堆。
本书详细介绍ZGC涉及的基本概念和运行原理,以及调优方法。主要内容共9章,主要
内容有:垃圾回收器概述、ZGC内存管理、ZGC线程、ZGC垃圾回收算法的设计、ZGC日
志解读、ZGC参数和基准测试、ZGC的编译调试、ZGC特性总结和展望、ZGC的编译调试、Shenandoah简介等。
深入理解Java虚拟机(第2版) 豆瓣 Goodreads
9.2 (12 个评分) 作者: 周志明 机械工业出版社 2013 - 9
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》内容简介:第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据最新的JDK 1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和最佳实践;增加了若干与生产环境相结合的实战案例;对第1版中的错误和不足之处的修正;等等。第2版不仅技术更新、内容更丰富,而且实战性更强。
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。
第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解书中后面内容有重要帮助。
第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见虚拟机监控与故障处理工具的原理和使用方法。
第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。
第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果;
第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。
揭秘Java虚拟机 豆瓣
作者: 封亚飞 2017 - 7
《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配模型。
数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式。《揭秘Java虚拟机:JVM设计原理与实现》通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。
执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是《揭秘Java虚拟机:JVM设计原理与实现》技术含量高的部分,需要读者具备一定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是Java函数堆栈和栈帧,以及栈帧内部的详细结构。
内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如new关键字的工作机制,import关键字的作用,再如java.lang.ClassLoader.loadClass()接口的本地实现机制。
《揭秘Java虚拟机:JVM设计原理与实现》并不是简单地分析源码实现,而是在描述HotSpot内部实现机制的同时,分析了HotSpot如此这般实现的技术必然性。读者在阅读《揭秘Java虚拟机:JVM设计原理与实现》的过程中,将会在很多地方看到作者本人的这种思考。