当前位置: 首页 > 新闻 > 信息荟萃
编号:5710
深入理解Java虚拟机(第二版).pdf
http://www.100md.com 2020年11月18日
第1页
第8页
第13页
第25页
第41页
第262页

    参见附件(19394KB,471页)。

     Java是目前用户最多、使用范围最广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、为各开发领域提供接口支持的Java API、Java编程语言及许许多多的第三方Java框架(如Spring和Struts等)构成。在国内,有关Java API、Java语言及第三方框架的技术资料和书籍非常丰富,相比之下,有关Java虚拟机的资料却显得异常贫乏。

    内容简介

    《深入理解Java虚拟机:JVM高级特性与最佳实践》内容简介:作为一位Java程序员,你是否也曾经想深入理解Java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,本书极尽化繁为简之妙,能带领你在轻松中领略Java虚拟机的奥秘。本书是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案例和最佳实践也极具现实指导意义。

    全书共分为五大部分。第一部分从宏观的角度介绍了整个Java技术体系的过去、现在和未来,以及如何独立地编译一个OpenJDK7,这对理解后面的内容很有帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理;常见的虚拟机的监控与调试工具的原理和使用方法。第三部分分析了虚拟机的执行子系统,包括Class的文件结构以及如何存储和访问Class中的数据;虚拟机的类创建机制以及类加载器的工作原理和它对虚拟机的意义;虚拟机字节码的执行引擎以及它在实行代码时涉及的内存结构。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测方法、HotSpot的即时编译器、编译触发条件,以及如何从虚拟机外部观察和分析JIT编译的数据和结果。第五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和操作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟机实现高效并发所做的一系列锁优化措施。

    作者简介

    周志明,资深Java技术专家,对JavaEE企业级应用开发、OSGi、Java虚拟机和工作流等都有深入的研究,并在大量的实践中积累了丰富的经验。尤其精通Java虚拟机,撰写了大量与JVM相关的经典文章,被各大技术社区争相转载,是ITeye等技术社区公认的Java虚拟机方面的领袖人物之一。现任远光软件股份有限公司平台开发部经理兼平台架构师,先后参加与过国家电网、南方电网等多个国家级大型ERP项目的平台架构工作,对软件系统架构也有深刻的认识和体会。

    深入理解Java虚拟机(第二版)预览

    目录

    前言

    致谢

    第一部分 走近Java

    第1章 走近Java / 2

    1.1 概述 / 2

    1.2 Java技术体系 / 3

    1.3 Java发展史 / 5

    1.4 展望Java技术的未来 / 9

    1.4.1 模块化 / 9

    1.4.2 混合语言 / 9

    1.4.3 多核并行 / 11

    1.4.4 进一步丰富语法 / 12

    1.4.5 64位虚拟机 / 13

    1.5 实战:自己编译JDK / 13

    1.5.1 获取JDK源码 / 13

    1.5.2 系统需求 / 14

    1.5.3 构建编译环境 / 15

    1.5.4 准备依赖项 / 17

    1.5.5 进行编译 / 18

    1.6 本章小结 / 21

    第二部分 自动内存管理机制

    第2章 Java内存区域与内存溢出异常 / 24

    2.1 概述 / 24

    2.2 运行时数据区域 / 25

    2.2.1 程序计数器 / 25

    2.2.2 Java虚拟机栈 / 26

    2.2.3 本地方法栈 / 27

    2.2.4 Java堆 / 27

    2.2.5 方法区 / 28

    2.2.6 运行时常量池 / 29

    2.2.7 直接内存 / 29

    2.3 对象访问 / 30

    2.4 实战:OutOfMemoryError异常 / 32

    2.4.1 Java堆溢出 / 32

    2.4.2 虚拟机栈和本地方法栈溢出 / 35

    2.4.3 运行时常量池溢出 / 38

    2.4.4 方法区溢出 / 39

    2.4.5 本机直接内存溢出 / 41

    2.5 本章小结 / 42

    第3章 垃圾收集器与内存分配策略 / 43

    3.1 概述 / 43

    3.2 对象已死? / 44

    3.2.1 引用计数算法 / 44

    3.2.2 根搜索算法 / 46

    3.2.3 再谈引用 / 47

    3.2.4 生存还是死亡? / 48

    3.2.5 回收方法区 / 50

    3.3 垃圾收集算法 / 51

    3.3.1 标记 -清除算法 / 51

    3.3.2 复制算法 / 52

    3.3.3 标记-整理算法 / 54

    3.3.4 分代收集算法 / 54

    3.4 垃圾收集器 / 55

    3.4.1 Serial收集器 / 56

    3.4.2 ParNew收集器 / 57

    3.4.3 Parallel Scavenge收集器 / 59

    3.4.4 Serial Old收集器 / 60

    3.4.5 Parallel Old收集器 / 61

    3.4.6 CMS收集器 / 61

    3.4.7 G1收集器 / 64

    3.4.8 垃圾收集器参数总结 / 64

    3.5 内存分配与回收策略 / 65

    3.5.1 对象优先在Eden分配 / 66

    3.5.2 大对象直接进入老年代 / 68

    3.5.3 长期存活的对象将进入老年代 / 69

    3.5.4 动态对象年龄判定 / 71

    3.5.5 空间分配担保 / 73

    3.6 本章小结 / 75

    第4章 虚拟机性能监控与故障处理工具 / 76

    4.1 概述 / 76

    4.2 JDK的命令行工具 / 76

    4.2.1 jps:虚拟机进程状况工具 / 79

    4.2.2 jstat:虚拟机统计信息监视工具 / 80

    4.2.3 jinfo:Java配置信息工具 / 82

    4.2.4 jmap:Java内存映像工具 / 82

    4.2.5 jhat:虚拟机堆转储快照分析工具 / 84

    4.2.6 jstack:Java堆栈跟踪工具 / 85

    4.3 JDK的可视化工具 / 87

    4.3.1 JConsole:Java监视与管理控制台 / 88

    4.3.2 VisualVM:多合一故障处理工具 / 96

    4.4 本章小结 / 105

    第5章 调优案例分析与实战 / 106

    5.1 概述 / 106

    5.2 案例分析 / 106

    5.2.1 高性能硬件上的程序部署策略 / 106

    5.2.2 集群间同步导致的内存溢出 / 109

    5.2.3 堆外内存导致的溢出错误 / 110

    5.2.4 外部命令导致系统缓慢 / 112

    5.2.5 服务器JVM进程崩溃 / 113

    5.3 实战:Eclipse运行速度调优 / 114

    5.3.1 调优前的程序运行状态 / 114

    5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117

    5.3.3 编译时间和类加载时间的优化 / 122

    5.3.4 调整内存设置控制垃圾收集频率 / 126

    5.3.5 选择收集器降低延迟 / 130

    5.4 本章小结 / 133

    媒体推荐

    Java 程序是如何运行的?Java虚拟机在其中扮演了怎样的角色?如何让Java程序具有更高的并发性?许多Java程序员都会诸如此类的疑问。无奈,国内在很长一段时间里都没有一本从实际应用的角度讲解Java虚拟机的著作,《深入理解Java虚拟机:JVM高级特性与最佳实践》的出版可谓填补了这个空白。它从Java程序员的角度出发,系统地将Java程序运行过程中涉及的各种知识整合到了一起,并配以日常工作中可能会碰到的疑难案例,引领读者轻松踏上探索Java虚拟机的旅途,是广大对Java虚拟机感兴趣的读者的福音!

    ——莫枢(RednaxelaFX) 虚拟机和编程语言爱好者

    在武侠的世界里,无论是至刚至强的《易筋经》,还是阴柔无比的《葵花宝典》,都离不开内功修炼。没有了内功心法,这些武术只是花拳绣腿的拙劣表演而已。软件业是武林江湖的一个翻版,也有着大量的模式、套路、规范等外功,但“外功修行,内功修神”,要想成为“扫地僧”一样的绝世高人,此书是必备的。

    ——秦小波 资深Java技术专家/著有畅销书《设计模式之禅》

    对Java程序员来说,Java虚拟机可以说是既熟悉又神秘,很少Java程序员能够抑制自己探究它的冲动。可惜,分析JVM实现原理的书籍(特别是国内作者出版的)是少之又少。《深入理解Java虚拟机:JVM高级特性与最佳实践》的出版可谓Java程序员的福音,作者将自己多年来在Java虚拟机领域的实践经验和研究心得呈现在了这《深入理解Java虚拟机:JVM高级特性与最佳实践》中,不仅系统地讲解了Java虚拟机工作机制和底层原理,而且更难能可贵的是与实践很好地结合了起来,具有非常强的实践指导意义,强烈推荐!

    ——计文柯 资深Java技术专家/著有畅销书《Spring技术内幕:深入解析Spring架构设计与实现原理》

    深入理解Java虚拟机(第二版)截图

您现在查看是摘要介绍页, 详见PDF附件(19394KB,471页)