《深入理解Java虚拟机:JVM高级特性与最佳实践》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062566

内容简介

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

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

《深入理解java虚拟机:jvm高级特性与最佳实践》适合所有java程序员、系统调优师和系统架构师阅读。

作译者简介

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

目录

前 言

致 谢

第一部分 走近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虚拟机:JVM高级特性与最佳实践》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062566

更多书单和推荐电子书请关注:
http://zhaozhiyong.cn

《深入理解Java虚拟机:JVM高级特性与最佳实践》【PDF】下载的更多相关文章

  1. 《决战大数据:驾驭未来商业的利器》【PDF】下载

    内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...

  2. 大数据时代的图表可视化利器——highcharts,D3和百度的echarts

    大数据时代的图表可视化利器——highcharts,D3和百度的echarts https://blog.csdn.net/minidrupal/article/details/42153941   ...

  3. 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

    决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...

  4. 决战大数据之二:CentOS 7 最新JDK 8安装

    决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...

  5. 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码

    学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...

  6. asp.net大数据导出execl实现分开压缩并下载

    asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...

  7. 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析

    随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...

  8. 关于大数据时代传统商业存储的思考: 中心存储 VS 分布式存储

    尊重原创,转载请注明出处:http://anzhan.me ; http://blog.csdn.net/anzhsoft 今天和我们部门的老大1*1, 大家面对面沟通了一下到新的项目组的想法.而且也 ...

  9. cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)

    cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...

  10. 大数据之路week06--day01(VMware的下载与安装、安装CentOS)

    好了,从今天开始就开始正式的进入大数据道路的轨道上了,当然了,Java 也是需要不断地在日后进行反复地学习,熟练掌握.(这里我要说一下,Java种还有一些I/O流.Lambda表达式和一些常用工具类有 ...

随机推荐

  1. 设计模式的征途—23.解释器(Interpreter)模式

    虽然目前计算机编程语言有好几百种,但有时人们还是希望用一些简单的语言来实现特定的操作,只需要向计算机输入一个句子或文件,就能按照预定的文法规则来对句子或文件进行解释.例如,我们想要只输入一个加法/减法 ...

  2. 小程序基于疼讯qcloud的nodejs开发服务器部署

        腾讯,疼讯,很疼. 请慎重看腾讯给出的文档,最好做一个笔记. 我只能说我能力有限,在腾讯云小程序的文档中跳了n天. 最后还是觉得记录下来,以防止我的cpu过载给烧了. 此文档是对<小程序 ...

  3. [最短路]信使(msner)

    [题目描述] 战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位).指挥部设在第一个哨所.当指挥部下达一个命令后 ...

  4. Minecraft

    描述 Minecraft是一个几乎无所不能的沙盒游戏,玩家可以利用游戏内的各种资源进行创造,搭建自己的世界. 在Minecraft中,基本的建筑元素是边长为1个单位的立方体,Tony想用N个这种小立方 ...

  5. 2734:十进制到八进制-poj

    总时间限制:  1000ms 内存限制:  65536kB 描述 把一个十进制正整数转化成八进制. 输入 一行,仅含一个十进制表示的整数a(0 < a < 65536). 输出 一行,a的 ...

  6. 深入了解Android蓝牙Bluetooth——《进阶篇》

    在 [深入了解Android蓝牙Bluetooth--<基础篇>](http://blog.csdn.net/androidstarjack/article/details/6046846 ...

  7. 《Linux命令行与shell脚本编程大全》第十九章 初识sed和gawk

    这两个工具能够极大简化需要进行的数据处理任务. 19.1 文本处理 能轻松实现自动格式化.插入.修改或删除文本元素的简单命令行编辑. sed和gawk就具备上述功能 19.1.1 sed编辑器 被称为 ...

  8. display:box和display:flex填坑之路

    背景分析:最近做移动端项目时,遇到一个常见的需求: 可以滑动的导航,如下图 虽然是很常见的一个布局,但在移动端没有做过,想当然的写下以下的样式,简单描述下: 父元素 width:100%: overf ...

  9. Java爬虫实践--爬取CSDN网站图片为例

    实现的效果,自动在工程下创建Pictures文件夹,根据网站URL爬取图片,层层获取.在Pictures下以网站的层级URL命名文件夹,用来装该层URL下的图片.同时将文件名,路径,URL插入数据库, ...

  10. 数据库sql语句总结

    1) select 字段名 from 表名 group by 字段名(或是多个字段名,中间用逗号隔开) having count(*)>1:查询表中某一(某几个)字段内的重复数据 Oracle: ...