[连载] 深入理解Java虚拟机(JVM高级特性与最佳实践) 学习笔记连载分享

猿媛们好

            话说 一入编程深似海,从此萧郎[妹纸]是路人!好吧,我是个妹纸。
            【lz可透露的个人信息】
            昵称:             梅子
            性别:             女
            出生年月: 1989-9
            工作:      从事Java开发 工作三年以上.
            性格:      静如止水,动如脱兔.
            
            
            lz将对下图的书,进行连载分享学习笔记 。欢迎各位猿媛们指点批评更正。
        
        
====================================================================================



        下面将书的信息发出来。

        【书信息】    
            
         书名:     【正版】深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)|3768003
         图书定价:     79元
         图书作者:     周志明
         出版社:     机械工业出版社
         ISBN号:     9787111421900
         页数:    433
    
     【目录】
    
                《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》
                前言
                第一部分 走近Java
                    第1章 走近Java / 2
                        1.1 概述 / 2
                        1.2 Java技术体系 / 3
                        1.3 Java发展史 / 5
                        1.4 Java虚拟机发展史 / 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 进一步丰富语法 / 20
                        1.5.5 64位虚拟机 / 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
                第二部分 自动内存管理机制
                    第2章 Java内存区域与内存溢出异常 / 38
                        2.1 概述 / 38
                        2.2 运行时数据区域 / 38
                        2.2.1 程序计数器 / 39
                        2.2.2 Java虚拟机栈 / 39
                        2.2.3 本地方法栈 / 40
                        2.2.4 Java堆 / 41
                        2.2.5 方法区 / 41
                        2.2.6 运行时常量池 / 42
                        2.2.7 直接内存 / 43
                        2.3 HotSpot虚拟机对象探秘 / 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 虚拟机栈和本地方法栈溢出 / 53
                        2.4.3 方法区和运行时常量池溢出 / 56
                        2.4.4 本机直接内存溢出 / 59
                        2.5 本章小结 / 60
                    第3章 垃圾收集器与内存分配策略 / 61
                        3.1 概述 / 61
                        3.2 对象已死吗 / 62
                        3.2.1 引用计数算法 / 62
                        3.2.2 可达性分析算法 / 64
                        3.2.3 再谈引用 / 65
                        3.2.4 生存还是死亡 / 66
                        3.2.5 回收方法区 / 68
                        3.3 垃圾收集算法 / 69
                        3.3.1 标记-清除算法 / 69
                        3.3.2 复制算法 / 70
                        3.3.3 标记-整理算法 / 71
                        3.3.4 分代收集算法 / 72
                        3.4 HotSpot的算法实现 / 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 对象优先在Eden分配 / 91
                        3.6.2 大对象直接进入老年代 / 93
                        3.6.3 长期存活的对象将进入老年代 / 95
                        3.6.4 动态对象年龄判定 / 97
                        3.6.5 空间分配担保 / 98
                        3.7 本章小结 / 100
                    第4章 虚拟机性能监控与故障处理工具 / 101
                        4.1 概述 / 101
                        4.2 JDK的命令行工具 / 101
                        4.2.1 jps:虚拟机进程状况工具 / 104
                        4.2.2 jstat:虚拟机统计信息监视工具 / 105
                        4.2.3 jinfo:Java配置信息工具 / 106
                        4.2.4 jmap:Java内存映像工具 / 107
                        4.2.5 jhat:虚拟机堆转储快照分析工具 / 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
                    第5章 调优案例分析与实战 / 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 不恰当数据结构导致内存占用过大 / 139
                        5.2.7 由Windows虚拟内存导致的长时间停顿 / 141
                        5.3 实战:Eclipse运行速度调优 / 142
                        5.3.1 调优前的程序运行状态 / 142
                        5.3.2 升级JDK 1.6的性能变化及兼容问题 / 145
                        5.3.3 编译时间和类加载时间的优化 / 150
                        5.3.4 调整内存设置控制垃圾收集频率 / 153
                        5.3.5 选择收集器降低延迟 / 157
                        5.4 本章小结 / 160
                第三部分 虚拟机执行子系统
                    第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 方法表集合 / 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 方法调用和返回指令 / 204
                        6.4.9 异常处理指令 / 205
                        6.4.10 同步指令 / 205
                        6.5 公有设计和私有实现 / 206
                        6.6 Class文件结构的发展 / 207
                        6.7 本章小结 / 208
                    第7章 虚拟机类加载机制 / 209
                        7.1 概述 / 209
                        7.2 类加载的时机 / 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 双亲委派模型 / 229
                        7.4.3 破坏双亲委派模型 / 233
                        7.5 本章小结 / 235
                    第8章 虚拟机字节码执行引擎 / 236
                        8.1 概述 / 236
                        8.2 运行时栈帧结构 / 236
                        8.2.1 局部变量表 / 238
                        8.2.2 操作数栈 / 242
                        8.2.3 动态连接 / 243
                        8.2.4 方法返回地址 / 243
                        8.2.5 附加信息 / 244
                        8.3 方法调用 / 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
                    第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
                第四部分 程序编译与代码优化
                    第10章 早期(编译期)优化 / 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语法糖的味道 / 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
                    第11章 晚期(运行期)优化 / 329
                        11.1 概述 / 329
                        11.2 HotSpot虚拟机内的即时编译器 / 329
                        11.2.1 解释器与编译器 / 330
                        11.2.2 编译对象与触发条件 / 332
                        11.2.3 编译过程 / 337
                        11.2.4 查看及分析即时编译结果 / 339
                        11.3 编译优化技术 / 345
                        11.3.1 优化技术概览 / 346
                        11.3.2 公共子表达式消除 / 350
                        11.3.3 数组边界检查消除 / 351
                        11.3.4 方法内联 / 352
                        11.3.5 逃逸分析 / 354
                        11.4 Java与C/C++的编译器对比 / 356
                        11.5 本章小结 / 358
                第五部分 高效并发
                    第12章 Java内存模型与线程 / 360
                        12.1 概述 / 360
                        12.2 硬件的效率与一致性 / 361
                        12.3 Java内存模型 / 362
                        12.3.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
                    第13章 线程安全与锁优化 / 385
                        13.1 概述 / 385
                        13.2 线程安全 / 385
                        13.2.1 Java语言中的线程安全 / 386
                        13.2.2 线程安全的实现方法 / 390
                        13.3 锁优化 / 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 虚拟机字节码指令表 / 414
                附录C HotSpot虚拟机主要参数表 / 420
                附录D 对象查询语言(OQL)简介 / 424
                附录E JDK历史版本轨迹 / 430



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值