前言

为什么要写这本书

常言道,武学之道应循序渐进,对于计算机编程而言也是一样。作为一名开发者,能够不断夯实以及修炼自己的编程“内功”,是一件非常重要的事情。对Java领域而言,掌握JVM基本原理和运作机制属于Java开发者最基本的内功心法。

虽然目前市面上已经有了一些关于JVM的书籍,但大多数都是或深或浅,一些是知识学习门槛过高,另外一些却是管中窥豹,所以很难能够找到一本特别适合提高JVM基础功底的书籍。正因为如此,笔者便产生创作本书的想法,希望可以帮助到广大的Java编程爱好者。

补充一下,掌握JVM的运行原理,未必能直接帮助开发者快速提高编码能力和逻辑思维能力,却可以快速引导读者去优化JVM的性能和吞吐能力,以及解决大多数JVM问题事故,如系统服务宕机或者进入假死状态,或者出现了内存溢出等问题。

本书结构

本书的特点是“大道至简,大巧若拙”,主要就是追求易读易懂,但是其内涵精髓其实非常精妙。还希望各位读者细细品味,并且多读几遍,所谓温故而知新,可以更加透彻地学习及加深对知识和原理的理解。

本书总体分为4部分,共12章节,按照从浅入深的顺序进行讲解。

第一部分:初识JVM的世界。

• Java语言的起源:主要介绍了Java和JVM的发展历程和未来方向。

• 初次接触JVM:主要介绍了Oracle JDK和Open JDK的学习和使用方式。

• 迈向JVM第一步:主要介绍了JVM的总体结构,以及相关基本介绍。

第二部分:了解JVM的特性。

• 开始认识类加载系统:主要介绍了类加载系统的主要特性及其运作原理。

• 进入虚拟机核心世界:此章节算是本书的最核心部分,对整个JVM最核心也是最重要的部分做了详细的介绍和说明,主要包含GC回收系统和运行时数据区等核心内容。

• 永远线程安全的区域:主要介绍了虚拟机栈的执行机制和运行原理,以及组成部分。

第三部分:深入JVM的原理。

• 虚拟机字节码指令集:主要介绍了虚拟机执行的字节码的指令集和执行机制,以及运作方式等实现方式,此外还包含了实际的案例分析。

• JVM运作原理深入分析:介绍了GC回收机制的深层原理和执行机制的细节特点,还包含了Class字节码文件的操作维护的实现。

• JVM分析工具大全:主要介绍用JVM分析工具去分析JVM的运行状态。

• Arthas分析JVM问题定位:主要介绍了如何使用JVM分析工具分析系统频发的问题场景。

第四部分:JVM的调整。

• 程序的编译和代码优化:主要介绍了代码优化机制,包含逃逸分析和编译器优化等机制原理。

• Java内存模型和线程运作原理:主要介绍了JMM模型及线程相关的锁机制原理。

本书适用读者

本书适合已具有一定Java编程基础的开发人员、项目经理、架构师及性能调优工程师。

资源下载

本书附赠全书案例源代码,读者可以扫描右侧二维码关注“博雅读书社”微信公众号,输入本书 77 页的资源下载码,即可获得本书的下载学习资源。

资源下载码:2023525

勘误和支持

由于作者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,让作者与大家一起,在技术之路上互勉共进。作者的邮箱是liboware@gmail.com, 期待能够得到读者的真挚反馈。

致谢

感谢所在单位领导的支持与厚爱,因为有了你们的鼓励、帮助和引导,使我在技术道路上更有信心,我才能顺利完成本书的写作。