在过去的几年里,许多Java程序员开始越来越多的了解JVM内部以及Java虚拟机内部的工作原理,这种现象在过去的十年里并不常见,但随着并发性、性能等方面的关注度越来越多,JVM内部、垃圾回收和性能调优自然引起重视

然后,关于JVM的书籍并不多,本文就和大家盘点一下这方面的书籍,这些书籍适合4~6年Java工作经验的高级Java程序员,记住,不是为初学者准备的,除非你已经理解了一些关键组件,如垃圾收集器、Java堆结构等

1、《Optimizing Java》




Java编程性能调优阿里电子书 java性能调优书籍推荐_java圣经


我原本没有打算把这本书列入其中,但是我读了几页之后,就忍不住推荐了,很多相关方面的书籍主要把重心放在GC上,但是这一本书除了GC外还描述了JVM内部的许多方面,比如线程、JVM内存模型、JIT编译器等等。本书还概述了许多有用的工具,这些工具可以帮助你在日常工作中更好的使用JVM

这本书比其他同类的书籍更容易上手,对于想要深入学习GC算法的人来说,这本书是非常适合的,但对大多数程序员来说这本书可能就不太需要。

2、《The Java Virtual Machine Specification》


Java编程性能调优阿里电子书 java性能调优书籍推荐_深入java虚拟机 第四版_02


这是了解最新Java虚拟机最权威的资源,它是关于JDK 12版本,因此,它包括lambda表达式、方法引用、静态方法、switch case中的string以及在Java SE 12发行版的新增语言特性。

可以说,这本书是学习JVM内部原理的最好的书,但是可读性不是很好。我第一次读这本书的时候,被它内容的深度吓到了,所以,这本书不适合从头读到尾,而是选择特定的主题作为参考资料阅读。

下载地址:https://docs.oracle.com/javase/specs/jvms/se12/jvms12.pdf

3、《Java性能权威指南》


Java编程性能调优阿里电子书 java性能调优书籍推荐_java圣经_03


这是推荐给中级Java程序员学习JVM的书籍,它不像上面两本那样详细和复杂,但是涵盖了Java虚拟机和垃圾回收的所有相关细节,我认为每个有经验的Java程序员都应该读一读

对于许多热衷于学习JVM基础知识和JVM是如何工作的Java程序员来说,Scott Oaks编写的这本书无疑是学习JVM内部原理的最佳书籍。是每一个有经验的Java程序员必读的书。

4、《垃圾回收算法手册:自动内存管理的艺术》


Java编程性能调优阿里电子书 java性能调优书籍推荐_JVM_04


本书汇集了自动内存管理研究者和开发者们在过去50年间的丰富经验,在本书中,作者在一个统一的易于接受的框架内比较了当下最重要的回收策略以及最先进的回收技术。本书从近年来硬件与软件的发展给垃圾回收所带来的新挑战出发,探讨了这些挑战给高性能垃圾回收器的设计者与实现者所带来的影响。

5、《Java性能优化权威指南》


Java编程性能调优阿里电子书 java性能调优书籍推荐_Java_05


Java性能优化圣经!Java之父重磅推荐!是Scott Oaks的权威指南,Binu John和Charlie Hunt都是JVM选项和Java性能空间方面的权威,唯一的缺点是它不是最新的,但是一旦你了解了基本知识,你就可以通过阅读这些规范和文章轻松地使用最新的概念和开发来升级自己。

6、《Java Performance Companion》


Java编程性能调优阿里电子书 java性能调优书籍推荐_Java_06


作者Charlie Hunt与Monica Beckwith、Poonam Parhar和Bengt Rutisson合作,教你如何提高Java应用程序的性能。这已经是最新版本,但只覆盖到Java SE 8。

以上就是一些学习JVM内部原理的最佳书籍。这些都是很好的书籍,可以理解关于Java虚拟机如何工作、垃圾收集器如何工作以及编译器如何及时优化Java程序性能的理论和实践。作为一名高级Java开发人员,绝对是不容错过的