深入理解Java虚拟机(第二版)电子书pdf完整版|百度网盘下载

编辑评论:

Java 是目前应用最广泛的软件开发技术。 Java技术体系主要由支持Java程序运行的虚拟机、为各种开发领域提供接口支持的Java API、Java编程语言等组成。第三方Java框架(如Spring和Struts等)。在国内,关于Java API、Java语言和第三方框架的技术资料和书籍非常丰富,相比之下,Java虚拟机方面的资料却极为匮乏。

理解Java虚拟机(第二版)电子书

简介

《理解Java虚拟机:JVM高级特性和最佳实践》简介:作为一名Java程序员,你有没有想过深入了解Java虚拟机,却被它的复杂性和深奥性拒之门外?没关系,这本书尽可能的简单,可以带领你轻松领略Java虚拟机的奥秘。本书是近年来国内唯一一本与Java虚拟机相关的专着,也是唯一一本同时从核心理论和实际应用两个角度讨论Java虚拟机的书籍。而书中所包含的典型案例和最佳实践也具有重要的现实意义。

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

关于作者

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

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

目录

前言

谢谢

第 1 部分:接近 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 串行收集器/56

3.4.2 ParNew 收集器 / 57

3.4.3 并行清除收集器/59

3.4.4 串行旧收集器/60

3.4.5 并行旧收集器/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 Advanced Features and Best Practices》,不仅系统地讲解了Java虚拟机的工作机制和底层原理,更值得称道的是它很好地结合了实践,具有很强的实践指导意义,强烈推荐!

——吉文科,高级Java技术专家/畅销书《深入Spring技术:Spring架构设计与实现原理深度解析》作者

阅读剩余
THE END