深入理解Java虚拟机:JVM高级特性与*佳实践pdf下载pdf下载

深入理解Java虚拟机:JVM高级特性与*佳实践百度网盘pdf下载

作者:
简介:本篇主要提供深入理解Java虚拟机:JVM高级特性与*佳实践pdf下载
出版社:互动创新图书专营店
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

 书[0名0]:  (正版特价)深入理解Java虚拟[1机1]:JVM高级特性与*佳实践([0第0]2版)|225501
 图书定价: 79元
 图书作者: 周志明
 出版社:  [1机1]械工业出版社
 出版日期:  2013-06-01 00:00:00
 ISBN号: 9787111421900
 开本: 16开
 页数: 433
 版次: 2-1
 作者简介
周志明,资深Java技术专家,对JavaEE企业级应用开发、OSGi、Java虚拟[1机1]和工作流等都有深入的研究,并在[0大0]量的实践中积累了丰富的[纟巠]验。尤其精通Java虚拟[1机1],撰写了[0大0]量与JVM相关的[纟巠]典文章,被各[0大0]技术社区争相转载,是ITeye等技术社区公认的Java虚拟[1机1]方[mian]的[令页]袖人物之一。除本书外,还著有[纟巠]典著作《深入理解OSGi:Equi[0no0]x原理、应用与[z1u1i]佳实践》,广获读者[女子][0评0]。现任远[1光1]软[亻牛]股份有限公司开发部总[纟巠]理兼架构师,先后参与过[0国0]家电网、南方电网等多个[0国0]家级[0大0]型ERP项目的平台架构工作,对软[亻牛]系统架构也有深刻的认识和体[0会0]。
 内容简介
《深入理解Java虚拟[1机1]:JVM高级特性与[z1u1i]佳实践([0第0]2版)》[0第0]1版两年内印刷近10次,4家网上书店的[0评0]论近4?000条,98%以上的[0评0]论全部为5星级的[女子][0评0],是整个Java图书[令页]域公认的[纟巠]典著作和[0超0]级[0畅0]销书,繁体版在台湾也十分受欢迎。[0第0]2版在[0第0]1版的基础上做了很[0大0]的改进:根据[z1u1i][亲斤]的JDK 1.7对全书内容进行了全[mian]的升级和补充;增加了[0大0]量处理各种常见JVM问题的技巧和[z1u1i]佳实践;增加了若干与生产环境相结合的实战案例;对[0第0]1版中的错误和不足之处的修正;等等。[0第0]2版不仅技术更[亲斤]、内容更丰富,而且实战性更强。
全书共分为五[0大0]部分,围绕内存管理、执行子系统、程序编译与[0优0]化、高效并发等核心[1主1]题对JVM进行了全[mian]而深入的分析,深刻揭示了JVM的工作原理。[0第0]一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后[mian]内容有重要帮助。[0第0]二部分讲解了JVM的自动内存管理,包括虚拟[1机1]内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算[0法0]以及垃圾收集器的特点和工作原理;常见虚拟[1机1]监控与故障处理工具的原理和使用方[0法0]。[0第0]三部分分析了虚拟[1机1]的执行子系统,包括类文[亻牛]结构、虚拟[1机1]类加载[1机1]制、虚拟[1机1]字节码执行引擎。[0第0]四部分讲解了程序的编译与代码的[0优0]化,阐述了泛型、自动装箱拆箱、条[亻牛]编译等语[0法0]糖的原理;讲解了虚拟[1机1]的热点探测方[0法0]、HotSpot的即时编译器、编译触发条[亻牛],以及如何从虚拟[1机1]外部观察和分析JIT编译的数据和结果;[0第0]五部分探讨了Java实现高效并发的原理,包括JVM内存模型的结构和[*]作;原子性、可见性和有序性在Java内存模型中的体现;先行发生原则的规则和使用;线程在Java语言中的实现原理;虚拟[1机1]实现高效并发所做的一系列锁[0优0]化措施。
 目录

《深入理解Java虚拟[1机1]:JVM高级特性与[z1u1i]佳实践([0第0]2版)》
前言
[0第0]一部分 走近Java
[0第0]1章 走近Java / 2
1.1 概述 / 2
1.2 Java技术体系 / 3
1.3 Java发展[0史0] / 5
1.4 Java虚拟[1机1]发展[0史0] / 9
1.4.1 Sun Classic / Exact VM / 9
1.4.2 Sun HotSpot VM / 11
1.4.3 Sun Mobile-Embedded VM / Meta-Circular VM / 12
1.4.4 BEA JRockit / IBM J9 VM / 13
1.4.5 Azul VM / BEA Liquid VM / 14
1.4.6 Apache Harmony / Google Android Dalvik VM / 14
1.4.7 Microsoft JVM及其他 / 15
1.5 展望Java技术的未来 / 16
1.5.1 模块化 / 17
1.5.2 混合语言 / 17
1.5.3 多核并行 / 19
1.5.4 进一步丰富语[0法0] / 20
1.5.5 64位虚拟[1机1] / 21
1.6 实战:自己编译JDK / 22
1.6.1 获取JDK源码 / 22
1.6.2 系统需求 / 24
1.6.3 构建编译环境 / 25
1.6.4 进行编译 / 26
1.6.5 在IDE工具中进行源码调试 / 31
1.7 本章小结 / 35
[0第0]二部分 自动内存管理[1机1]制
[0第0]2章 Java内存区域与内存溢出异常 / 38
2.1 概述 / 38
2.2 运行时数据区域 / 38
2.2.1 程序计数器 / 39
2.2.2 Java虚拟[1机1]栈 / 39
2.2.3 本地方[0法0]栈 / 40
2.2.4 Java堆 / 41
2.2.5 方[0法0]区 / 41
2.2.6 运行时常量池 / 42
2.2.7 直接内存 / 43
2.3 HotSpot虚拟[1机1]对象探秘 / 43
2.3.1 对象的创建 / 44
2.3.2 对象的内存布局 / 47
2.3.3 对象的访问定位 / 48
2.4 实战:OutOfMemoryError异常 / 50
2.4.1 Java堆溢出 / 51
2.4.2 虚拟[1机1]栈和本地方[0法0]栈溢出 / 53
2.4.3 方[0法0]区和运行时常量池溢出 / 56
2.4.4 本[1机1]直接内存溢出 / 59
2.5 本章小结 / 60
[0第0]3章 垃圾收集器与内存分配策略 / 61
3.1 概述 / 61
3.2 对象已死吗 / 62
3.2.1 引用计数算[0法0] / 62
3.2.2 可达性分析算[0法0] / 64
3.2.3 再谈引用 / 65
3.2.4 生存还是死亡 / 66
3.2.5 回收方[0法0]区 / 68
3.3 垃圾收集算[0法0] / 69
3.3.1 标记-清除算[0法0] / 69
3.3.2 复制算[0法0] / 70
3.3.3 标记-整理算[0法0] / 71
3.3.4 分代收集算[0法0] / 72
3.4 HotSpot的算[0法0]实现 / 72
3.4.1 枚举根节点 / 72
3.4.2 安全点 / 73
3.4.3 安全区域 / 74
3.5 垃圾收集器 / 75
3.5.1 Serial收集器 / 76
3.5.2 ParNew收集器 / 77
3.5.3 Parallel Scavenge收集器 / 79
3.5.4 Serial Old收集器 / 80
3.5.5 Parallel Old收集器 / 80
3.5.6 CMS收集器 / 81
3.5.7 G1收集器 / 84
3.5.8 理解GC日志 / 89
3.5.9 垃圾收集器参数总结 / 90
3.6 内存分配与回收策略 / 91
3.6.1 对象[0优0]先在Eden分配 / 91
3.6.2 [0大0]对象直接进入老年代 / 93
3.6.3 长期存活的对象将进入老年代 / 95
3.6.4 动态对象年龄判定 / 97
3.6.5 空间分配担保 / 98
3.7 本章小结 / 100
[0第0]4章 虚拟[1机1]性能监控与故障处理工具 / 101
4.1 概述 / 101
4.2 JDK的命令行工具 / 101
4.2.1 jps:虚拟[1机1]进程状况工具 / 104
4.2.2 jstat:虚拟[1机1]统计信息监视工具 / 105
4.2.3 jinfo:Java配置信息工具 / 106
4.2.4 jmap:Java内存映像工具 / 107
4.2.5 jhat:虚拟[1机1]堆转储快照分析工具 / 108
4.2.6 jstack:Java堆栈跟踪工具 / 109
4.2.7 HSDIS:JIT生成代码反汇编 / 111
4.3 JDK的可视化工具 / 114
4.3.1 JConsole:Java监视与管理控制台 / 115
4.3.2 VisualVM:多合一故障处理工具 / 122
4.4 本章小结 / 131
[0第0]5章 调[0优0]案例分析与实战 / 132
5.1 概述 / 132
5.2 案例分析 / 132
5.2.1 高性能硬[亻牛]上的程序部署策略 / 132
5.2.2 集群间同步导致的内存溢出 / 135
5.2.3 堆外内存导致的溢出错误 / 136
5.2.4 外部命令导致系统缓慢 / 137
5.2.5 服务器JVM进程崩溃 / 138
5.2.6 不恰[0当0]数据结构导致内存占用过[0大0] / 139
5.2.7 由Windows虚拟内存导致的长时间停顿 / 141
5.3 实战:Eclipse运行速度调[0优0] / 142
5.3.1 调[0优0]前的程序运行状态 / 142
5.3.2 升级JDK 1.6的性能变化及兼容问题 / 145
5.3.3 编译时间和类加载时间的[0优0]化 / 150
5.3.4 调整内存设置控制垃圾收集频率 / 153
5.3.5 选择收集器降低延迟 / 157
5.4 本章小结 / 160
[0第0]三部分 虚拟[1机1]执行子系统
[0第0]6章 类文[亻牛]结构 / 162
6.1 概述 / 162
6.2 无关性的基石 / 162
6.3 Class类文[亻牛]的结构 / 164
6.3.1 魔数与Class文[亻牛]的版本 / 166
6.3.2 常量池 / 167
6.3.3 访问标志 / 173
6.3.4 类索引、父类索引与接口索引集合 / 174
6.3.5 字段表集合 / 175
6.3.6 方[0法0]表集合 / 178
6.3.7 属性表集合 / 180
6.4 字节码指令简介 / 196
6.4.1 字节码与数据类型 / 197
6.4.2 加载和存储指令 / 199
6.4.3 运算指令 / 200
6.4.4 类型转换指令 / 202
6.4.5 对象创建与访问指令 / 203
6.4.6 [*]作数栈管理指令 / 203
6.4.7 控制转移指令 / 204
6.4.8 方[0法0]调用和返回指令 / 204
6.4.9 异常处理指令 / 205
6.4.10 同步指令 / 205
6.5 公有设计和私有实现 / 206
6.6 Class文[亻牛]结构的发展 / 207
6.7 本章小结 / 208
[0第0]7章 虚拟[1机1]类加载[1机1]制 / 209
7.1 概述 / 209
7.2 类加载的时[1机1] / 210
7.3 类加载的过程 / 214
7.3.1 加载 / 214
7.3.2 验证 / 216
7.3.3 准备 / 219
7.3.4 解析 / 220
7.3.5 初始化 / 225
7.4 类加载器 / 227
7.4.1 类与类加载器 / 228
7.4.2 [0双0]亲委派模型 / 229
7.4.3 破坏[0双0]亲委派模型 / 233
7.5 本章小结 / 235
[0第0]8章 虚拟[1机1]字节码执行引擎 / 236
8.1 概述 / 236
8.2 运行时栈帧结构 / 236
8.2.1 局部变量表 / 238
8.2.2 [*]作数栈 / 242
8.2.3 动态连接 / 243
8.2.4 方[0法0]返回地址 / 243
8.2.5 附加信息 / 244
8.3 方[0法0]调用 / 244
8.3.1 解析 / 244
8.3.2 分派 / 246
8.3.3 动态类型语言支持 / 258
8.4 基于栈的字节码解释执行引擎 / 269
8.4.1 解释执行 / 269
8.4.2 基于栈的指令集与基于寄存器的指令集 / 270
8.4.3 基于栈的解释器执行过程 / 272
8.5 本章小结 / 275
[0第0]9章 类加载及执行子系统的案例与实战 / 276
9.1 概述 / 276
9.2 案例分析 / 276
9.2.1 Tomcat:正统的类加载器架构 / 276
9.2.2 OSGi:灵活的类加载器架构 / 279
9.2.3 字节码生成技术与动态代理的实现 / 282
9.2.4 Retrotranslator:跨越JDK版本 / 286
9.3 实战:自己动手实现远程执行功能 / 289
9.3.1 目标 / 290
9.3.2 思路 / 290
9.3.3 实现 / 291
9.3.4 验证 / 298
9.4 本章小结 / 299
[0第0]四部分 程序编译与代码[0优0]化
[0第0]10章 早期(编译期)[0优0]化 / 302
10.1 概述 / 302
10.2 Javac编译器 / 303
10.2.1 Javac的源码与调试 / 303
10.2.2 解析与填充符号表 / 305
10.2.3 注解处理器 / 307
10.2.4 语义分析与字节码生成 / 307
10.3 Java语[0法0]糖的味道 / 311
10.3.1 泛型与类型擦除 / 311
10.3.2 自动装箱、拆箱与遍历循环 / 315
10.3.3 条[亻牛]编译 / 317
10.4 实战:插入式注解处理器 / 318
10.4.1 实战目标 / 318
10.4.2 代码实现 / 319
10.4.3 运行与测试 / 326
10.4.4 其他应用案例 / 327
10.5 本章小结 / 328
[0第0]11章 晚期(运行期)[0优0]化 / 329
11.1 概述 / 329
11.2 HotSpot虚拟[1机1]内的即时编译器 / 329
11.2.1 解释器与编译器 / 330
11.2.2 编译对象与触发条[亻牛] / 332
11.2.3 编译过程 / 337
11.2.4 查看及分析即时编译结果 / 339
11.3 编译[0优0]化技术 / 345
11.3.1 [0优0]化技术概览 / 346
11.3.2 公共子表达式消除 / 350
11.3.3 数组边界检查消除 / 351
11.3.4 方[0法0]内联 / 352
11.3.5 逃逸分析 / 354
11.4 Java与C/C++的编译器对比 / 356
11.5 本章小结 / 358
[0第0]五部分 高效并发
[0第0]12章 Java内存模型与线程 / 360
12.1 概述 / 360
12.2 硬[亻牛]的效率与一致性 / 361
12.3 Java内存模型 / 362
12.3.1 [1主1]内存与工作内存 / 363
12.3.2 内存间交互[*]作 / 364
12.3.3 对于volatile型变量的特殊规则 / 366
12.3.4 对于long和double型变量的特殊规则 / 372
12.3.5 原子性、可见性与有序性 / 373
12.3.6 先行发生原则 / 375
12.4 Java与线程 / 378
12.4.1 线程的实现 / 378
12.4.2 Java线程调度 / 381
12.4.3 状态转换 / 383
12.5 本章小结 / 384
[0第0]13章 线程安全与锁[0优0]化 / 385
13.1 概述 / 385
13.2 线程安全 / 385
13.2.1 Java语言中的线程安全 / 386
13.2.2 线程安全的实现方[0法0] / 390
13.3 锁[0优0]化 / 397
13.3.1 自旋锁与自适应自旋 / 398
13.3.2 锁消除 / 398
13.3.3 锁粗化 / 400
13.3.4 轻量级锁 / 400
13.3.5 偏向锁 / 402
13.4 本章小结 / 403
附  录
附录A 编译Windows版的OpenJDK / 406
附录B 虚拟[1机1]字节码指令表 / 414
附录C HotSpot虚拟[1机1][1主1]要参数表 / 420
附录D 对象查询语言(OQL)简介 / 424
附录E JDK历[0史0]版本轨迹 / 430
 编辑推荐
《深入理解Java虚拟[1机1](JVM高级特性与[z1u1i]佳实践[0第0]2版)》由周志明所著,[0超0]级[0畅0]销书全[亲斤]升级,[0第0]1版两年内印刷近10次,Java图书[令页]域公认的[纟巠]典著作,繁体版台湾发行。 基于[z1u1i][亲斤]JDK1.7,围绕内存管理、执行子系统、程序编译与[0优0]化、高效并发等核心[1主1]题对JVM进行全[mian]而深入的分析,深刻揭示JVM的工作原理。 以实践为导向,通过[0大0]量与实际生产环境相结合的案例展示了解决各种常见JVM问题的技巧和[z1u1i]佳实践。