由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版 深入理解Java虚拟机 JVM高级特性与最佳实践 第3版 周志明 自动内存管理 软件系统 编程入门教程 开发指
¥ ×1
印刷36次,销量超过30万册,根据新版JDK全面升级,新增内容近50%,原创计算机图书丰碑,5个维度全面剖析JVM
书名: | 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) |
ISBN: | 9787111641247 |
作者: | 周志明 著 |
定价: | 129元 |
出版时间: | 12月15日 |
开本: | 16开 |
页数: | 540 |
出版社: | 机械工业出版社 |
目录 |
目 录 Contents 前言 致谢 第一部分 走近Java 第1章 走近Java 2 1.1概述 2 1.2Java技术体系 3 1.3Java发展史 4 1.4Java虚拟机家族 12 1.4.1虚拟机始祖:Sun Classic/Exact VM 12 1.4.2武林盟主:HotSpot VM 13 1.4.3小家碧玉:Mobile/Embedded VM 14 1.4.4天下第二:BEA JRockit/IBM J9 VM 15 1.4.5软硬合璧:BEA Liquid VM/Azul VM 16 1.4.6挑战者:Apache Harmony/Google Android Dalvik VM 17 1.4.7没有成功,但并非失败:Microsoft JVM及其他 18 1.4.8百家争鸣 19 1.5展望Java技术的未来 21 1.5.1无语言倾向 21 1.5.2新一代即时编译器 23 1.5.3向Native迈进 24 1.5.4灵活的胖子 26 1.5.5语言语法持续增强 27 1.6实战:自己编译JDK 29 1.6.1获取源码 29 1.6.2系统需求 31 1.6.3构建编译环境 33 1.6.4进行编译 34 1.6.5在IDE工具中进行源码调试 36 1.7本章小结 39 第二部分 自动内存管理 第2章Java内存区域与内存溢出异常 42 2.1概述 42 2.2运行时数据区域 42 2.2.1程序计数器 43 2.2.2Java虚拟机栈 43 2.2.3本地方法栈 44 2.2.4Java堆 44 2.2.5方法区 46 2.2.6运行时常量池 47 2.2.7直接内存 47 2.3HotSpot虚拟机对象探秘 48 2.3.1对象的创建 48 2.3.2对象的内存布局 51 2.3.3对象的访问定位 52 2.4实战:OutOfMemoryError异常 53 2.4.1Java堆溢出 54 2.4.2虚拟机栈和本地方法栈溢出 56 2.4.3方法区和运行时常量池溢出 61 2.4.4本机直接内存溢出 65 2.5本章小结 66 第3章 垃圾收集器与内存分配策略 67 3.1概述 67 3.2对象已死? 68 3.2.1引用计数算法 68 3.2.2可达性分析算法 70 3.2.3再谈引用 71 3.2.4生存还是死亡? 72 3.2.5回收方法区 74 3.3垃圾收集算法 75 3.3.1分代收集理论 75 3.3.2标记-清除算法 77 3.3.3标记-复制算法 78 3.3.4标记-整理算法 79 3.4HotSpot的算法细节实现 81 3.4.1根节点枚举 81 3.4.2安全点 82 3.4.3安全区域 83 3.4.4记忆集与卡表 84 3.4.5写屏障 85 3.4.6并发的可达性分析 87 3.5经典垃圾收集器 89 3.5.1Serial收集器 90 3.5.2ParNew收集器 92 3.5.3Parallel Scavenge收集器 93 3.5.4Serial Old收集器 94 3.5.5Parallel Old收集器 95 3.5.6CMS收集器 96 3.5.7Garbage First收集器 98 3.6低延迟垃圾收集器 104 3.6.1Shenandoah收集器 105 3.6.2ZGC收集器 112 3.7选择合适的垃圾收集器 121 3.7.1Epsilon收集器 121 3.7.2收集器的权衡 121 3.7.3虚拟机及垃圾收集器日志 122 3.7.4垃圾收集器参数总结 127 3.8实战:内存分配与回收策略 129 3.8.1对象优先在Eden分配 130 3.8.2大对象直接进入老年代 131 3.8.3长期存活的对象将进入老年代 132 3.8.4动态对象年龄判定 134 3.8.5空间分配担保 135 3.9本章小结 137 第4章 虚拟机性能监控、故障处理工具 138 4.1概述 138 4.2基础故障处理工具 138 4.2.1jps:虚拟机进程状况工具 141 4.2.2jstat:虚拟机统计信息监视工具 142 4.2.3jinfo:Java配置信息工具 143 4.2.4jmap:Java内存映像工具 144 4.2.5jhat:虚拟机堆转储快照分析工具 145 4.2.6jstack:Java堆栈跟踪工具 146 4.2.7基础工具总结 148 4.3可视化故障处理工具 151 4.3.1JHSDB:基于服务性代理的调试工具 152 4.3.2JConsole:Java监视与管理控制台 157 4.3.3VisualVM:多合-故障处理工具 164 4.3.4Java Mission Control:可持续在线的监控工具 171 4.4HotSpot虚拟机插件及工具 175 4.5本章小结 180 第5章 调优案例分析与实战 181 5.1概述 181 5.2案例分析 181 5.2.1大内存硬件上的程序部署策略 182 5.2.2集群间同步导致的内存溢出 184 5.2.3堆外内存导致的溢出错误 185 5.2.4外部命令导致系统缓慢 187 5.2.5服务器虚拟机进程崩溃 187 5.2.6不恰当数据结构导致内存占用过大 188 5.2.7由Windows虚拟内存导致的长时间停顿 189 5.2.8由安全点导致长时间停顿 190 5.3实战:Eclipse运行速度调优 192 5.3.1调优前的程序运行状态 193 5.3.2升级JDK版本的性能变化及兼容问题 196 5.3.3编译时间和类加载时间的优化 200 5.3.4调整内存设置控制垃圾收集频率 203 5.3.5选择收集器降低延迟 206 5.4本章小结 209 第三部分 虚拟机执行子系统 第6章 类文件结构 212 6.1概述 212 6.2无关性的基石 212 6.3Class类文件的结构 214 6.3.1魔数与Class文件的版本 215 6.3.2常量池 218 6.3.3访问标志 224 6.3.4类索引、父类索引与接口索引集合 225 6.3.5字段表集合 226 6.3.6方法表集合 229 6.3.7属性表集合 230 6.4字节码指令简介 251 6.4.1字节码与数据类型 251 6.4.2加载和存储指令 253 6.4.3运算指令 254 6.4.4类型转换指令 255 6.4.5对象创建与访问指令 256 6.4.6操作数栈管理指令 256 6.4.7控制转移指令 257 6.4.8方法调用和返回指令 257 6.4.9异常处理指令 258 6.4.10同步指令 258 6.5公有设计,私有实现 259 6.6Class文件结构的发展 260 6.7本章小结 261 第7章 虚拟机类加载机制 262 7.1概述 262 7.2类加载的时机 263 7.3类加载的过程 267 7.3.1加载 267 7.3.2验证 268 7.3.3准备 271 7.3.4解析 272 7.3.5初始化 277 7.4类加载器 279 7.4.1类与类加载器 280 7.4.2双亲委派模型 281 7.4.3破坏双亲委派模型 285 7.5Java模块化系统 287 7.5.1模块的兼容性 288 7.5.2模块化下的类加载器 290 7.6本章小结 292 第8章 虚拟机字节码执行引擎 293 8.1概述 293 8.2运行时栈帧结构 294 8.2.1局部变量表 294 8.2.2操作数栈 299 8.2.3动态连接 300 8.2.4方法返回地址 300 8.2.5附加信息 301 8.3方法调用 301 8.3.1解析 301 8.3.2分派 303 8.4动态类型语言支持 315 8.4.1动态类型语言 316 8.4.2Java与动态类型 317 8.4.3java.lang.invoke包 318 8.4.4invokedynamic指令 321 8.4.5实战:掌控方法分派规则 324 8.5基于栈的字节码解释执行引擎 326 8.5.1解释执行 327 8.5.2基于栈的指令集与基于寄存器的指令集 328 8.5.3基于栈的解释器执行过程 329 8.6本章小结 334 第9章 类加载及执行子系统的案例与实战 335 9.1概述 335 9.2案例分析 335 9.2.1Tomcat:正统的类加载器架构 335 9.2.2OSGi:灵活的类加载器架构 338 9.2.3字节码生成技术与动态代理的实现 341 9.2.4Backport工具:Java的时光机器 345 9.3实战:自己动手实现远程执行功能 348 9.3.1目标 348 9.3.2思路 349 9.3.3实现 350 9.3.4验证 355 9.4本章小结 356 第四部分 程序编译与代码优化 第10章 前端编译与优化 358 10.1概述 358 10.2Javac编译器 359 10.2.1Javac的源码与调试 359 10.2.2解析与填充符号表 362 10.2.3注解处理器 363 10.2.4语义分析与字节码生成 364 10.3Java语法糖的味道 367 10.3.1泛型 367 10.3.2自动装箱、拆箱与遍历循环 375 10.3.3条件编译 377 10.4实战:插入式注解处理器 378 10.4.1实战目标 379 10.4.2代码实现 379 10.4.3运行与测试 385 10.4.4其他应用案例 386 10.5本章小结 386 第11章 后端编译与优化 388 11.1概述 388 11.2即时编译器 389 11.2.1解释器与编译器 389 11.2.2编译对象与触发条件 392 11.2.3编译过程 397 11.2.4实战:查看及分析即时编译结果 398 11.3提前编译器 404 11.3.1提前编译的优劣得失 405 11.3.2实战:Jaotc的提前编译 408 11.4编译器优化技术 411 11.4.1优化技术概览 411 11.4.2方法内联 415 11.4.3逃逸分析 417 11.4.4公共子表达式消除 420 11.4.5数组边界检查消除 421 11.5实战:深入理解Graal编译器 423 11.5.1历史背景 423 11.5.2构建编译调试环境 424 11.5.3JVMCI编译器接口 426 11.5.4代码中间表示 429 11.5.5代码优化与生成 432 11.6本章小结 436 第五部分 高效并发 第12章Java内存模型与线程 438 12.1概述 438 12.2硬件的效率与一致性 439 12.3Java内存模型 440 12.3.1主内存与工作内存 441 12.3.2内存间交互操作 442 12.3.3对于volatile型变量的特殊规则 444 12.3.4针对long和double型变量的特殊规则 450 12.3.5原子性、可见性与有序性 450 12.3.6先行发生原则 452 12.4Java与线程 455 12.4.1线程的实现 455 12.4.2Java线程调度 458 12.4.3状态转换 460 12.5Java与协程 461 12.5.1内核线程的局限 461 12.5.2协程的复苏 462 12.5.3Java的解决方案 464 12.6本章小结 465 第13章 线程安全与锁优化 466 13.1概述 466 13.2线程安全 466 13.2.1Java语言中的线程安全 467 13.2.2线程安全的实现方法 471 13.3锁优化 479 13.3.1自旋锁与自适应自旋 479 13.3.2锁消除 480 13.3.3锁粗化 481 13.3.4轻量级锁 481 13.3.5偏向锁 483 13.4本章小结 485 附录A在Windows系统下编译OpenJDK 6 486 附录B展望Java技术的未来(2013年版) 493 附录C虚拟机字节码指令表 499 附录D对象查询语言(OQL)简介 506 附录EJDK历史版本轨迹 512 |
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格