新書推薦:
《
算法图解(第2版)
》
售價:HK$
78.2
《
科学的奇幻之旅
》
售價:HK$
77.3
《
画艺循谱:晚明的画谱与消闲
》
售價:HK$
143.4
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:HK$
99.7
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:HK$
44.6
《
甲骨拼合六集
》
售價:HK$
333.8
《
视觉美食家:商业摄影实战与创意解析
》
售價:HK$
132.2
《
中国经济发展的新阶段:机会与选择
》
售價:HK$
99.7
|
編輯推薦: |
Java虚拟机核心技术一本通:通过实战案例 执行效果图 核心代码,剖析探索JVM核心底层原理,强化推动JVM优化落地,手把手教你吃透Java虚拟机深层原理!
|
內容簡介: |
《深入浅出Java虚拟机:JVM原理与实战》主要以 Java 虚拟机的基本特性及运行原理为中心,深入浅出地分析 JVM 的组成结构和底层实现,介绍了很多性能调优的方案和工具的使用方法。后还扩展介绍了 JMM 内存模型的实现原理和 Java 编译器的优化机制,让读者不仅可以学习 JVM 的核心技术知识,还能夯实 JVM 调优及代码优化的技术功底。
《深入浅出Java虚拟机:JVM原理与实战》适合已具有一定 Java 编程基础的开发人员、项目经理、架构师及性能调优工程师参考阅读,同时,《深入浅出Java虚拟机:JVM原理与实战》还可以作为广大职业院校、计算机培训班相关专业的教学参考用书。
|
關於作者: |
李博,资深架构师,InfoQ平台、阿里云社区专家博主,CSDN博客专家,51CTO讲师,慕课网讲师,Quarkus技术社区的热衷参与者,参与过多个开源项目(Skywalking、Nacos、Pulsar等)的开发和深入研究。目前担任公司内部架构委员会副主席,主要研究方向是“基于Quarkus的云原生Java微服务架构的推进”和“GraalVM虚拟机的内部化落地”。
|
目錄:
|
第1章 Java语言的起源 7
1.1 Java发展的艰辛历程 8
1.2 Java散发的独特魅力 10
1.3 网络时代带来的挑战 12
1.4 Java生态的体系结构 14
1.5 JVM的进化发展史 17
1.6 小结 19
第2章 初次接触JVM 20
2.1 通过Oracle JDK搭建运行环境 21
2.2 通过Open JDK搭建运行环境 29
2.3 Open JDK和Oracle JDK的关系 35
2.4 小结 36
第3章 迈向JVM的步 38
3.1 JVM内部七大“首脑” 39
3.2 JVM外部有利“辅助” 43
3.3 JVM内部对象的探索发掘 47
3.4 JVM的OOM异常 51
3.5 JVM的总体内存结构分布 54
3.6 小结 55
第4章 开始认识类加载系统 56
4.1 类加载系统的整体生命周期和流程 57
4.2 类加载系统为我们带来了什么 63
4.3 Class字节码的组成 70
4.4 小结 80
第5章 进入虚拟机核心世界 81
5.1 堆内存的“管辖范围” 82
5.2 内存管理系统回收垃圾 86
5.3 垃圾回收的类型 98
5.4 方法区 101
5.5 执行引擎子系统 105
5.6 对象描点标记的方法 107
5.7 对象描点标记的方法 110
5.8 小结 113
第6章 永远线程安全的区域 114
6.1 虚拟机栈和PC寄存器 115
6.2 虚拟机执行机制介绍 118
6.3 小结 122
第7章 虚拟机字节码指令集 123
7.1 字节码指令概述 124
7.2 字节码指令执行案例分析 134
7.3 小结 137
第8章 JVM深入分析运作原理 138
8.1 内存分配及回收的依据 139
8.2 内存分配及回收的策略 143
8.3 小结 146
第9章 JVM分析工具大全 147
9.1 JVM分析工具概述 148
9.2 常用JVM图形化分析工具概述 159
9.3 JVM在线性能分析服务 166
9.4 小结 172
第10章 Arthas分析JVM问题定位 173
10.1 Arthas学习指南 174
10.2 Arthas分析OOM问题定位 182
10.3 Arthas分析FullGC问题定位 185
10.4 Arthas分析线程方面问题定位 187
10.5 小结 190
第11章 程序的编译和代码优化 191
11.1 Java体系的3种编译器 192
11.2 JIT编译器 194
11.3 AOT编译器 199
11.4 编译技术的优化 200
11.5 逃逸分析技术 207
11.6 小结 212
第12章 Java内存模型和线程运作原理 213
12.1 Java内存模型 214
12.2 线程实现 223
12.3 线程安全控制 227
12.4 线程的锁优化 228
12.5 小结 231
|
內容試閱:
|
为什么要写这本书
常言道,武学之道应循序渐进,对于计算机编程而言也是一样,作为一名开发者,如果能够不断夯实以及修炼自己的编程“内功”,是非常重要的一件事情。对Java领域而言,掌握JVM基本原理和运作机制便是属于Java开发者的基本的内功心法。
虽然目前市面上已经有了一些关于JVM相关的书籍,但是大多数都是或深或浅,一些是知识学习门槛过高,另外一些却是管中窥豹,所以很难能够找到一本特别适合提高JVM基础功底的书籍。正因为如此,本人便产生想法创作这本“基础心法”,希望可以帮助到广大的Java编程爱好者。
补充一下,掌握JVM的运行原理,未必能直接帮助开发者快速提高编码能力和逻辑思维能力,但是却可以快速引导读者去优化JVM的性能和吞吐能力,以及解决大多数JVM问题事故。例如,当遇到系统服务宕机或者假死状态,或者出现了内存溢出等场景。
本书结构
本书的主要特点主要集中在“大道至简,大巧若拙”,主要就是追求容易被读者理解,并且看起来通俗易懂,但是其内涵精髓其实是非常的精妙。还希望各位读者细细去品味,并且多读几遍,所谓温故而知新,可以更加透彻地去学习及加深对知识和原理的理解。
本章总体分为4部分,共12章节,按照从浅入深的顺序进行讲解分析。
部分:初识JVM的世界。
JVM从哪儿而来,主要介绍了JVM的发展历程和未来方向。
初次接触JVM,主要介绍了Oracle JDK和Open JDK的学习和使用方式。
迈向JVM步,主要介绍了JVM的总体结构部分,以及相关基本介绍。
第二部分:了解JVM的特性。
开始认识类加载系统,主要介绍了类加载系统的主要特性以及运作原理。
进入虚拟机核心世界,此章节算是本书的核心部分,对整个JVM核心也是重要的部分做了详细的介绍和说明,主要包含GC回收系统和运行时数据区等核心内容。
永远线程安全的区域,主要介绍了虚拟机栈的执行机制和运行原理,以及组成部分。
第三部分:深入JVM的原理。
虚拟机字节码指令集,主要介绍了虚拟机执行的字节码的指令集和执行机制,以及运作方式等实现方式,此外还包含了实际的案例分析。
JVM深入分析运作原理,介绍了GC回收机制的深层原理和执行机制的细节特点,还包含了Class字节码文件的操作维护的实现。
JVM分析工具使用,主要介绍用JVM分析工具去分析JVM的运行状态。
JVM调优的实战案例,主要介绍了如何使用JVM分析工具分析系统频发的问题场景。
第四部分:JVM的调整。
程序的编译和代码优化,主要介绍了代码优化机制,包含逃逸分析和编译器优化等机制原理。
JMM和线程运作机制,主要介绍了JMM模型及线程相关的锁机制原理。
本书适用读者
本书适合已具有一定Java编程基础的开发人员、项目经理、架构师及性能调优工程师。
勘误和支持
由于作者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,让作者与大家一起,在技术之路上互勉共进。作者的邮箱是liboware@gmail.com, 期待能够得到你们的真挚反馈。
致谢
感谢所在单位领导的支持与厚爱,因为有了你们的鼓励、帮助和引导,使我在技术道路上更有信心,我才能顺利完成本书。
|
|