深入理解 java虚拟机第二版周志明(带书签完整高清)

所需积分/C币:40 2017-09-01 20:47:58 16.63MB PDF
收藏 收藏 3
举报

深入理解 java虚拟机第二版周志明(带书签完整高清),, java虚拟机 jvm 完整高清 带书签 周志明 jmm pdf,文字可复制
目录 前营 第2版与第1版的区别 本书面向的读者 如何阅读本书 语约定 内容特色 参考资料 勘误和支持 致谢 第一部分走近Java 第1章走近Java 概述 12Java技术体系 Java发展史 4Java虚拟机发展史 1.4.1 Sun Classic/Exact vm 1.4.2 Sun HotSpot VM 4.3 Sun Mobile-Embedded VM/Meta-Circular VM 14 4 BEA JROCKItIBM J9 VM 1.4.5 Azul VM/BEA Liquid VM 1.4.6 Apache Harmony/Google Android Dalvik VM 47 Microsoft jvm及其他 5展望Java技术的未来 模块化 52混合语置 153多核并行 1.54进一步丰富语法 15564位虚拟机 1.6实战:自己编译JK 6,1获取JK源码 162系统需求 163构建编译环境 1.6.4进行编译 65在IDE工县中进行源码调试 7本章小结 第二部分自动內存管理机制 第2章Jaa内存区域与内存溢出异常 21概述 22运行时数据区域 程序计数罪 222Java虚拟机栈 223本地方法栈 224Java堆 22.5方法区 22.6运行时常量池 227直接内存 23 HotSpot虛拟机对象探秘 2.3.1对象的创建 232对象的内存布局 23.3对象的访问定位 24实战: OutOfMemoryErro异常 2.4,1Java堆溢出 242虚拟机栈和本地方法栈溢岀 2.43方法区和运行时常量池溢岀 2.4.4本机直接内存溢出 本章小结 第3章垃圾收集器与內存分配策瞪 3.1概述 3.2对象已死吗 32.1引用计数算法 32.2可达性分析算法 3.2.3再谈引用 3.24生存还是死亡 325回收方法区 3.3垃圾收集算法 331标记-清除篁法 332复制算法 33.3标记整理算法 334分代收集算法 3.4 HotSpot的算法实现 3.4.1枚举根节点 342安全点 34.3安全区域 3.5垃圾收集器 3.51 Seria收集羅 3.52 ParDew收集羅 353 Parallel scavenge收集置 3.54 Serial old收集羅 3.55 Parallel old收集羅 3.5.6CMS收集 357G1收集器 3.58理解GC日志 359垃圾收集器参数总结 3.6内存分配与回收策瞪 361对象优先在Eden分配 3.62大对象直接进人老年代 363长期存活的对象捋进入老年代 3.64动态对象年龄判定 3.65空间分配担保 3.7本章小结 第4章虛拟机性能监控与故障处理工 41概述 42JDK的命合行工具 421ijps:虛拟机进程状况工具 422ist:虛拟机统计信息监视工具 423 jinfo:Java配置信息工具 424jmap:Java内存映像工具 425ihat:虚拟机堆转储怏照分杬工具 426 stack:Java堆栈跟踪工县 4.2.7 HSDIS:J生成代码反汇编 4.3JDK的可视化工县 43.1 J Console;Java监视与管理控制台 43.2 Visualvm:多合一故障处理工县 44本章小结 第5章调优案例分析与实战 51概述 案例分杬 52.1高性能硬件上的程序部署策瞪 522集群间同步导致的内存溢岀 523堆外内存导致的溢出错误 524外部命命导致系统缓慢 5,25服务JM进程崩溃 52.6不恰当数据结构导致内存占用过大 27由 Windows虛拟内存导致的长时间停顿 53实战: Eclipse运行速度调优 53.1调优前的程序运行状态 532升级JK16的性能变化及兼容问题 53编译时间和类加载时间的优化 53.4调整內存设置控制垃圾收集频率 535选择收集器隆低延迟 54本章小结 第三部分虛拟机执行子系统 第6章类文件结构 61概述 62无关性的基石 63 Class类文件的结构 63,1魔数与Cass文件的版本 6.3.2常量池 63访问标志 634类索引、父类索引与接口索引集合 63.5字段表集合 63.6方法表集合 637属性表集合 64字节码指命简介 6.4.1字节码与数据类型 642加载和存储指命 643运算指合 6.4.4类型转换指合 645对象创建与访问指命 646操作数栈管理指爷 647控制转移指命 64.8方法调用和返回指合 649异常处理指合 64.10同步指合 6.5公有设计和私有实现 66Clas文件结构的发展 6.7本章小结 第7章虛拟机类加载机制 71概述 72类加载的时机 73类加载的过程 73.1加载 732验证 733准备 7.34解析 73.5初始化 74类加载 74.1类与类加载 742双亲委派模型 74.3破坏双亲委派模型 75本章小结 第8章虛拟机字节码执行引篁 8.,1概述 82运行时栈帧结构 82.1局部变量表 822操作数栈 823动态连接 824方法返回地址 82.5附加信息 8.3方法调用 8.3.1解析 83.2分派 8.3、3动态类型语支持 8.4基于栈的字节码解释执行引擎 8.41解释执行 8342基于栈的指爷集与基于寄存器的指爷集 843基于栈的解释器执行过程 85本章小结 第9章类加载及执行子系统的案例与实战 91概述 92案例分杬 921 Tomcat:正统的类加载器架构 92.2OSG:灵活的类加载器架构 9,23字节码生成技术与动态代理的实现 924 Retrotranslator:跨越JK版本 93实战自己动手实现远程执行功能 9.3.1目标 932思路 933实现 9.34验证 94本章小结 第四部分程序编译与代码优化 第10章早期(编译期)优化 10.1概述 10.2 Javac编译器 021 Javac的源码与调试 022解析与填充符号表 023注解处理羅 10.24语义分析与字节码生成 10.3Java语法糖的味道 10.31泛型与类型擦除 1032自动裝箱、拆箱与遍历循环 033条件编译 04实战∵插入式注解处理羅 0.4.1实战目标 1042代码实现 10.43运行与测试 10.44其他应用案例 105本章小结 第1章晩期(运行期)优化 11.1概述 12 Hotspot虚拟机内的即时编译器 1121解释器与编译體 1122编译对象与蝕发条件 11.23编译过程 112.4查看及分析即时编译结果 13编译优化技术 13,1优化技术概览 11.32公共子表达式消除 133数组边界检查消除 3.4方法内联 11.3.5逃逸分析 114Java与C/C艹的编译器对比 11.5本章小结 第五部分高效并发 第12章Java内存模型与线程 2.1概述 22硬件的效率与一致性 2.3Java内存模型 231主内存与工作内存 2.32内存间交互操作 12.33对于 volatile型变量的特殊规则 34对千ong和 double型变量的特殊规则 2.3.5原子性、可见性与有序性 12.3.6先行发生原则 2.4Java与线程 2.4.1线程的实现 12.4.2Java线程调度 12.43状态转换 2.5本章小结 第13章线程安全与锁优化 31概述 3.2线程安全 1321Java语言中的线程安全 13.2.2线程安全的实现方法 13.3锁优化 331自旋锁与自活应自旋 3.32锁消除 3.3.3锁粗化 3.34轻量级锁 1335偏向锁 134本章小结 附录 附录A编译 Windows版的 OpenJDK A1获取JK源码 A2系统需求 A3构建编译环境 A4淮备依赖项 A、5进行编译 附录B_虛拟机字节码指合表 附录 C HotSpot虚拟机主要参数表 C.1內存管理参数 C2即时编译参数 C3类型加载参数 C4多线程相关参数 C5性能参数 C6调试参数 附录D对象查询语(OOL)简介 D. SELECT子句 D.2FROM子句 D.3 WHERE子句 D4属性访问羅 D5OO语青的BNF范式 附录FJDK历史版本轨迹 Java是目前用户最多、使用范围最广的软件开发技术之一。Java的技术体系主要由支撑 Java程序运行的虚拟机、提供各开发领域接口支持的 Java API、Java编程语及许多第三方 Java框架(如 Spring、Smus等)构成。在国内,有关 Java APi、Java语言语法及第三方框架的 技术资料和书籍非常丰富,相比之下,有关Java虚拟机的资料却显得异常贫乏。 这种状况在很大程度上是由Java开发技术本身的一个重要优点导致的:在虚拟机层面隐 藏了底层技术的复杂性以及机器与操作系统的差异性。运行程序的物理机器的情况千差万 别,而Java虚拟机则在千差万别的物理机上建立了统一的运行平台,实现了在任意一台虚拟 机上编译的程序都能在任何一台虚拟机上正常运行。这一极大优势使得Java应用的开发比传 统CC+应用的开发更高效和快捷,程序员可以把主要精力集中在具体业务逻辑上,而不是 物理硬件的兼容性上。在一般情况下,一个程序员只要了解了必要的JaⅤaAPI、JaVa语法 以及学习适当的第三方开发框架,就已经基本能满足日常开发的需要了,虚拟机会在用户不 知不觉中完成对硬件平台的兼容及对内存等资源的管理工作。因此,了解虚拟机的运作并不 是一般开发人员必须掌握的知识。 然而,凡事都具备两面性。随着Java技术的不断发展,它被应用于越来越多的领域之 中。其中一些领域,如电力、金融、通信等,对程序的性能、稳定性和可扩展性方面都有极 高的要求。程序很可能在10个人同时使用时完全正常,但是在10000个人同时使用时就会缓 慢、死锁,甚至崩溃。毫无疑问,要满足10000个人同时使用需要更髙性能的物理硬件,但 是在绝大多数情况下,提升硬件效能无法等比例地提升程序的运作性能和并发能力,甚至可 能对程序运作状况完全没有任何改善。这里面有Java虚拟机的原因:为了达到给所有硬件提 供一致的虛拟平台的目的,牺牲了一些与硬件相关的性能特性。更重要的是人为原因:如果 开发人员不了解虚拟机一些技术特性的运行原理,就无法写出最适合虚拟机运行和自优化的 代码。 其实,目前商用的高性能Java虚拟机都提供了相当多的优化特性和调节手段,用于满足 应用程序在实际生产环境中对性能和稳定性的要求。如果只是为了入门学习,让程序在自己 的机器上正常运行,那么这些特性可以说是可有可无的;如果用于生产开发,尤其是企业级 生产开发,就迫切需要开发人员中至少有一部分人对虚拟机的特性及调节方法具有很清晰的 认识,所以在Java开发体系中,对架构师、系统调优师、高级程序员等角色的需求一值都非 常大。学习虚拟机中各种自动运作特性的原理也成为了Java程序员成长道路上必然会接触到 的一课。本书可以使读者以一种相对轻松的方式学习虚拟机的运作原理,对Java程序员的成 长也有较大的帮助。

...展开详情
试读 127P 深入理解 java虚拟机第二版周志明(带书签完整高清)
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    yuxm909 有些章节没有书签
    2019-08-22
    回复
    qq_36960108 挺好的资源
    2019-02-01
    回复
    wolf_01 不是新版的吧,还是红色的
    2019-01-30
    回复
    蓝色的是第二版,红色的是第一版吧老铁
    zhuojh_ 相当给力的资源
    2018-11-15
    回复
    胖兔Love妍妍 非常好的资源,很清晰,很全。
    2018-10-25
    回复
    • 领英

      绑定领英第三方账户获取
    • GitHub

      绑定GitHub第三方账户获取
    • 脉脉勋章

      绑定脉脉第三方账户获得
    • 签到达人

      累计签到获取,不积跬步,无以至千里,继续坚持!
    • 分享宗师

      成功上传21个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    深入理解 java虚拟机第二版周志明(带书签完整高清) 40积分/C币 立即下载
    1/127
    深入理解 java虚拟机第二版周志明(带书签完整高清)第1页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第2页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第3页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第4页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第5页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第6页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第7页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第8页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第9页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第10页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第11页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第12页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第13页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第14页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第15页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第16页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第17页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第18页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第19页
    深入理解 java虚拟机第二版周志明(带书签完整高清)第20页

    试读已结束,剩余107页未读...

    40积分/C币 立即下载 >