失效链接处理 |
《深入理解JAVA内存模型》PDF 下蝲 转蝲自:https://download.csdn.net/download/xiyuan2016/9554247 下蝲地址Q?/strong>版权归出版社和原作者所有,链接已删除,误买正?/b>
用户下蝲说明Q?/strong>
?sh)子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:
http://product.dangdang.com/23259731.html
![]()
资料介:
本书W?版两q内印刷q?0ơ,4家网上书店的评论q??000条,98%以上的评论全部ؓ5星的好评,是整个Java图书领域公认的经典著作和畅销书,J体版在台湾也十分受Ƣ迎。第2版在W?版的基础上做了很大的改进Q根?的JDK1.7对全书内容进行了全面的升U和补充Q增加了大量处理各种常见JVM问题的技巧和*实践Q增加了若干与生产环境相l合的实战案例;对第1版中的错误和不之处的修正;{等。第2版不仅技术更新、内Ҏ(gu)丰富Q而且实战性更强?/span>
全书共分Z大部分,围绕内存理、执行子pȝ、程序编译与优化、高效ƈ发等核心主题对JVMq行了全面而深入的分析Q深LCZJVM的工作原理?部分从宏观的角度介绍了整个Java技术体pRJava和JVM的发展历E、模块化Q以及JDK的编译,q对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出异常产生的原因;常见的垃圾收集算法以及垃圾收集器的特点和工作原理Q常见虚拟机监控与故障处理工L原理和用方法。第三部分分析了虚拟机的执行子系l,包括cL件结构、虚拟机cd载机制、虚拟机字节码执行引擎。第四部分讲解了E序的编译与代码的优化,阐述了泛型、自动装拆、条件编译等语法p的原理Q讲解了虚拟机的热点探测Ҏ(gu)、HotSpot的即时编译器、编译触发条Ӟ以及如何从虚拟机外部观察和分析JIT~译的数据和l果Q第五部分探讨了Java实现高效q发的原理,包括JVM内存模型的结构和操作Q原子性、可见性和有序性在Java内存模型中的体现Q先行发生原则的规则和用;U程在Java语言中的实现原理Q虚拟机实现高效q发所做的一pd锁优化措施?/span>
资料目录Q?/strong>
前言 W一部分 走近Java W?章 走近Java 1.1 概述 1.2 Java技术体p?/span> 1.3 Java发展?/span> 1.4 Java虚拟机发展史 1.4.1 Sun Classic Exact VM 1.4.2 Sun HotSpot VM 1.4.3 Sun Mobile-Embedded VM Meta-Circular VM 1.4.4 BEA JRockit IBM J9 VM 1.4.5 Azul VM BEA Liquid VM 1.4.6 Apache Harmony Google Android Dalvik VM 1.4.7 Microsoft JVM及其?/span> 1.5 展望Java技术的未来 1.5.1 模块?/span> 1.5.2 混合语言 1.5.3 多核q行 1.5.4 q一步丰富语?/span> 1.5.5 64位虚拟机 1.6 实战Q自q译JDK 1.6.1 获取JDK源码 1.6.2 pȝ需?/span> 1.6.3 构徏~译环境 1.6.4 q行~译 1.6.5 在IDE工具中进行源码调?/span> 1.7 本章结 W二部分 自动内存理机制 W?章 Java内存区域与内存溢出异?/span> 2.1 概述 2.2 q行时数据区?/span> 2.2.1 E序计数?/span> 2.2.2 Java虚拟机栈 2.2.3 本地Ҏ(gu)?/span> 2.2.4 Java?/span> 2.2.5 Ҏ(gu)?/span> 2.2.6 q行时常量池 2.2.7 直接内存 2.3 HotSpot虚拟机对象探U?/span> 2.3.1 对象的创?/span> 2.3.2 对象的内存布局 2.3.3 对象的访问定?/span> 2.4 实战QOutOfMemoryError异常 2.4.1 Java堆溢?/span> 2.4.2 虚拟机栈和本地方法栈溢出 2.4.3 Ҏ(gu)区和q行时常量池溢出 2.4.4 本机直接内存溢出 2.5 本章结 W?章 垃圾攉器与内存分配{略 3.1 概述 3.2 对象已死?/span> 3.2.1 引用计数法 3.2.2 可达性分析算?/span> 3.2.3 再谈引用 3.2.4 生存q是M 3.2.5 回收Ҏ(gu)?/span> 3.3 垃圾攉法 3.3.1 标记-清除法 3.3.2 复制法 3.3.3 标记-整理法 3.3.4 分代攉法 3.4 HotSpot的算法实?/span> 3.4.1 枚D根节?/span> 3.4.2 安全?/span> 3.4.3 安全区域 3.5 垃圾攉?/span> 3.5.1 Serial攉?/span> 3.5.2 ParNew攉?/span> 3.5.3 Parallel Scavenge攉?/span> 3.5.4 Serial Old攉?/span> 3.5.5 Parallel Old攉?/span> 3.5.6 CMS攉?/span> 3.5.7 G1攉?/span> 3.5.8 理解GC日志 3.5.9 垃圾攉器参数ȝ 3.6 内存分配与回收策?/span> 3.6.1 对象优先在Eden分配 3.6.2 大对象直接进入老年?/span> 3.6.3 长期存活的对象将q入老年?/span> 3.6.4 动态对象年龄判?/span> 3.6.5 I间分配担保 3.7 本章结 W?章 虚拟机性能监控与故障处理工?/span> 4.1 概述 4.2 JDK的命令行工具 4.2.1 jpsQ虚拟机q程状况工具 4.2.2 jstatQ虚拟机l计信息监视工具 4.2.3 jinfoQJava配置信息工具 4.2.4 jmapQJava内存映像工具 4.2.5 jhatQ虚拟机堆{储快照分析工?/span> 4.2.6 jstackQJava堆栈跟踪工具 4.2.7 HSDISQJIT生成代码反汇~?/span> 4.3 JDK的可视化工具 4.3.1 JConsoleQJava监视与管理控制台 4.3.2 VisualVMQ多合一故障处理工具 4.4 本章结 W?章 调优案例分析与实?/span> 5.1 概述 5.2 案例分析 5.2.1 高性能g上的E序部v{略 5.2.2 集群间同步导致的内存溢出 5.2.3 堆外内存D的溢出错?/span> 5.2.4 外部命oDpȝ~慢 5.2.5 服务器JVMq程崩溃 5.2.6 不恰当数据结构导致内存占用过?/span> 5.2.7 由Windows虚拟内存D的长旉停顿 5.3 实战QEclipseq行速度调优 5.3.1 调优前的E序q行状?/span> 5.3.2 升JDK 1.6的性能变化及兼定w?/span> 5.3.3 ~译旉和类加蝲旉的优?/span> 5.3.4 调整内存讄控制垃圾攉频率 5.3.5 选择攉器降低gq?/span> 5.4 本章结 W三部分 虚拟机执行子pȝ W?章 cL件结?/span> 6.1 概述 6.2 无关性的基石 6.3 ClasscL件的l构 6.3.1 数与Class文g的版?/span> 6.3.2 帔R?/span> 6.3.3 讉K标志 6.3.4 cȝ引、父cȝ引与接口索引集合 6.3.5 字段表集?/span> 6.3.6 Ҏ(gu)表集?/span> 6.3.7 属性表集合 6.4 字节码指令简?/span> 6.4.1 字节码与数据cd 6.4.2 加蝲和存储指?/span> 6.4.3 q算指o 6.4.4 cd转换指o 6.4.5 对象创徏与访问指?/span> 6.4.6 操作数栈理指o 6.4.7 控制转移指o 6.4.8 Ҏ(gu)调用和返回指?/span> 6.4.9 异常处理指o 6.4.10 同步指o 6.5 公有设计和私有实?/span> 6.6 Class文gl构的发?/span> 6.7 本章结 W?章 虚拟机类加蝲机制 7.1 概述 7.2 cd载的时机 7.3 cd载的q程 7.3.1 加蝲 7.3.2 验证 7.3.3 准备 7.3.4 解析 7.3.5 初始?/span> 7.4 cd载器 7.4.1 cMcd载器 7.4.2 双亲委派模型 7.4.3 破坏双亲委派模型 7.5 本章结 W?章 虚拟机字节码执行引擎 8.1 概述 8.2 q行时栈帧结?/span> 8.2.1 局部变量表 8.2.2 操作数栈 8.2.3 动态连?/span> 8.2.4 Ҏ(gu)q回地址 8.2.5 附加信息 8.3 Ҏ(gu)调用 8.3.1 解析 8.3.2 分派 8.3.3 动态类型语a支持 8.4 Z栈的字节码解释执行引?/span> 8.4.1 解释执行 8.4.2 Z栈的指o集与Z寄存器的指o?/span> 8.4.3 Z栈的解释器执行过E?/span> 8.5 本章结 W?章 cd载及执行子系l的案例与实?/span> 9.1 概述 9.2 案例分析 9.2.1 TomcatQ正l的cd载器架构 9.2.2 OSGiQ灵zȝcd载器架构 9.2.3 字节码生成技术与动态代理的实现 9.2.4 RetrotranslatorQ跨JDK版本 9.3 实战Q自己动手实现远E执行功?/span> 9.3.1 目标 9.3.2 思\ 9.3.3 实现 9.3.4 验证 9.4 本章结 W四部分 E序~译与代码优?/span> W?0章 早期Q编译期Q优?/span> 10.1 概述 10.2 Javac~译?/span> 10.2.1 Javac的源码与调试 10.2.2 解析与填充符可 10.2.3 注解处理?/span> 10.2.4 语义分析与字节码生成 10.3 Java语法p的味道 10.3.1 泛型与类型擦?/span> 10.3.2 自动装箱、拆׃遍历循环 10.3.3 条g~译 10.4 实战Q插入式注解处理?/span> 10.4.1 实战目标 10.4.2 代码实现 10.4.3 q行与测?/span> 10.4.4 其他应用案例 10.5 本章结 W?1章 晚期Q运行期Q优?/span> 11.1 概述 11.2 HotSpot虚拟机内的即时编译器 11.2.1 解释器与~译?/span> 11.2.2 ~译对象与触发条?/span> 11.2.3 ~译q程 11.2.4 查看及分析即时编译结?/span> 11.3 ~译优化技?/span> 11.3.1 优化技术概?/span> 11.3.2 公共子表辑ּ消除 11.3.3 数组边界查消?/span> 11.3.4 Ҏ(gu)内联 11.3.5 逃逸分?/span> 11.4 Java与CC 的编译器Ҏ(gu) 11.5 本章结 W五部分 高效q发 W?2章 Java内存模型与线E?/span> 12.1 概述 12.2 g的效率与一致?/span> 12.3 Java内存模型 12.3.1 d存与工作内存 12.3.2 内存间交互操?/span> 12.3.3 对于volatile型变量的Ҏ(gu)规则 12.3.4 对于long和double型变量的Ҏ(gu)规则 12.3.5 原子性、可见性与有序?/span> 12.3.6 先行发生原则 12.4 Java与线E?/span> 12.4.1 U程的实?/span> 12.4.2 JavaU程调度 12.4.3 状态{?/span> 12.5 本章结 W?3章 U程安全与锁优化 13.1 概述 13.2 U程安全 13.2.1 Java语言中的U程安全 13.2.2 U程安全的实现方?/span> 13.3 锁优?/span> 13.3.1 自旋锁与自适应自旋 13.3.2 锁消?/span> 13.3.3 锁粗?/span> 13.3.4 轻量U锁 13.3.5 偏向?/span> 13.4 本章结 附 ?/span> 附录A ~译Windows版的OpenJDK 附录B 虚拟机字节码指o?/span> 附录C HotSpot虚拟Z要参数表 附录D 对象查询语言QOQLQ简?/span> 附录E JDK历史版本轨迹 |