文件大小:28.21 MB
文件类型:pdf
发布时间:2023-01-09 21:38:27
需资源分:2
下载次数:0
Tag:Java JVM 高级特性
::资源简介::
深入理解Java虚拟机[JVM高级特性与最佳实践]
前言
致谢
第一部分 走近Java
第01章 走近Java
1_1 概述
1_2 Java技术体系
1_3 Java发展史
1_4 Java虚拟机家族
1_4_1 虚拟机始祖_Sun Classic/Exact VM
1_4_2 武林盟主_HotSpot VM
1_4_3 小家碧玉_Mobile/Embedded VM
1_4_4 天下第二_BEA JRockit/IBM J9 VM
1_4_5 软硬合璧_BEA Liquid VM/Azul VM
1_4_6 挑战者_Apache Harmony/Google Android Dalvik VM
1_4_7 没有成功_但并非失败_Microsoft JVM及其他
1_4_8 百家争鸣
1_5 展望Java技术的未来
1_5_1 无语言倾向
1_5_2 新一代即时编译器
1_5_3 向Native迈进
1_5_4 灵活的胖子
1_5_5 语言语法持续增强
1_6 实战_自己编译JDK
1_6_1 获取源码
1_6_2 系统需求
1_6_3 构建编译环境
1_6_4 进行编译
1_6_5 在IDE工具中进行源码调试
1_7 本章小结
第二部分 自动内存管理
第02章 Java内存区域与内存溢出异常
2_1 概述
2_2 运行时数据区域
2_2_1程序计数器
2_2_2 Java虚拟机栈
2_2_3 本地方法栈
2_2_4 Java堆
2_2_5 方法区
2_2_6 运行时常量池
2_2_7 直接内存
2_3 HotSpot虚拟机对象探秘
2_3_1对象的创建
2_3_2对象的内存布局
2_3_3对象的访问定位
2_4 实战_OutOfMemoryError异常
2_4_1 Java堆溢出
2_4_2 虚拟机栈和本地方法栈溢出
2_4_3 方法区和运行时常量池溢出
2_4_4 本机直接内存溢出
2_5 本章小结
第03章 垃圾收集器与内存分配策略
3_1 概述
3_2对象已死
3_2_1 引用计数算法
3_2_2 可达性分析算法
3_2_3 再谈引用
3_2_4 生存还是死亡
3_2_5 回收方法区
3_3 垃圾收集算法
3_3_1 分代收集理论
3_3_2 标记_清除算法
3_3_3 标记_复制算法
3_3_4 标记_整理算法
3_4 HotSpot的算法细节实现
3_4_1 根节点枚举
3_4_2 安全点
3_4_3 安全区域
3_4_4 记忆集与卡表
3_4_5 写屏障
3_4_6 并发的可达性分析
3_5 经典垃圾收集器
3_5_1 Serial收集器
3_5_2 ParNew收集器
3_5_3 Parallel Scavenge收集器
3_5_4 Serial Old收集器
3_5_5 Parallel Old收集器
3_5_6 CMS收集器
3_5_7 Garbage First收集器
3_6 低延迟垃圾收集器
3_6_1 Shenandoah收集器
3_6_2 ZGC收集器
3_7 选择合适的垃圾收集器
3_7_1 Epsilon收集器
3_7_2 收集器的权衡
3_7_3 虚拟机及垃圾收集器日志
3_7_4 垃圾收集器参数总结
3_8 实战_内存分配与回收策略
3_8_1对象优先在Eden分配
3_8_2 大对象直接进入老年代
3_8_3 长期存活的对象将进入老年代
3_8_4 动态对象年龄判定
3_8_5 空间分配担保
3_9 本章小结
第04章 虚拟机性能监控_故障处理工具
4_1 概述
4_2 基础故障处理工具
4_2_1 jps_虚拟机进程状况工具
4_2_2 jstat_虚拟机统计信息监视工具
4_2_3 jinfo_Java配置信息工具
4_2_4 jmap_Java内存映像工具
4_2_5 jhat_虚拟机堆转储快照分析工具
4_2_6 jstack_Java堆栈跟踪工具
4_2_7 基础工具总结
4_3 可视化故障处理工具
4_3_1 JHSDB_基于服务性代理的调试工具
4_3_2 JConsole_Java监视与管理控制台
4_3_3 VisualVM_多合_故障处理工具
4_3_4 Java Mission Control_可持续在线的监控工具
4_4 HotSpot虚拟机插件及工具
4_5 本章小结
第05章 调优案例分析与实战
5_1 概述
5_2 案例分析
5_2_1 大内存硬件上的程序部署策略
5_2_2 集群间同步导致的内存溢出
5_2_3 堆外内存导致的溢出错误
5_2_4 外部命令导致系统缓慢
5_2_5 服务器虚拟机进程崩溃
5_2_6 不恰当数据结构导致内存占用过大
5_2_7 由Windows虚拟内存导致的长时间停顿
5_2_8 由安全点导致长时间停顿
5_3 实战_Eclipse运行速度调优
5_3_1 调优前的程序运行状态
5_3_2 升级JDK版本的性能变化及兼容问题
5_3_3 编译时间和类加载时间的优化
5_3_4 调整内存设置控制垃圾收集频率
5_3_5 选择收集器降低延迟
5_4 本章小结
第三部分 虚拟机执行子系统
第06章 类文件结构
6_1 概述
6_2 无关性的基石
6_3 Class类文件的结构
6_3_1 魔数与Class文件的版本
6_3_2 常量池
6_3_3 访问标志
6_3_4 类索引_父类索引与接口索引集合
6_3_5 字段表集合
6_3_6 方法表集合
6_3_7 属性表集合
6_4 字节码指令简介
6_4_1 字节码与数据类型
6_4_2 加载和存储指令
6_4_3 运算指令
6_4_4 类型转换指令
6_4_5对象创建与访问指令
6_4_6 操作数栈管理指令
6_4_7 控制转移指令
6_4_8 方法调用和返回指令
6_4_9 异常处理指令
6_4_10 同步指令
6_5 公有设计_私有实现
6_6 Class文件结构的发展
6_7 本章小结
第07章 虚拟机类加载机制
7_1 概述
7_2 类加载的时机
7_3 类加载的过程
7_3_1 加载
7_3_2 验证
7_3_3 准备
7_3_4 解析
7_3_5 初始化
7_4 类加载器
7_4_1 类与类加载器
7_4_2 双亲委派模型
7_4_3 破坏双亲委派模型
7_5 Java模块化系统
7_5_1 模块的兼容性
7_5_2 模块化下的类加载器
7_6 本章小结
第08章 虚拟机字节码执行引擎
8_1 概述
8_2 运行时栈帧结构
8_2_1 局部变量表
8_2_2 操作数栈
8_2_3 动态连接
8_2_4 方法返回地址
8_2_5 附加信息
8_3 方法调用
8_3_1 解析
8_3_2 分派
8_4 动态类型语言支持
8_4_1 动态类型语言
8_4_2 Java与动态类型
8_4_3 java_lang_invoke包
8_4_4 invokedynamic指令
8_4_5 实战_掌控方法分派规则
8_5 基于栈的字节码解释执行引擎
8_5_1 解释执行
8_5_2 基于栈的指令集与基于寄存器的指令集
8_5_3 基于栈的解释器执行过程
8_6 本章小结
第09章 类加载及执行子系统的案例与实战
9_1 概述
9_2 案例分析
9_2_1 Tomcat_正统的类加载器架构
9_2_2 OSGi_灵活的类加载器架构
9_2_3 字节码生成技术与动态代理的实现
9_2_4 Backport工具_Java的时光机器
9_3 实战_自己动手实现远程执行功能
9_3_1 目标
9_3_2 思路
9_3_3 实现
9_3_4 验证
9_4 本章小结
第四部分 程序编译与代码优化
第10章 前端编译与优化
10_1 概述
10_2 Javac编译器
10_2_1 Javac的源码与调试
10_2_2 解析与填充符号表
10_2_3 注解处理器
10_2_4 语义分析与字节码生成
10_3 Java语法糖的味道
10_3_1 泛型
10_3_2 自动装箱_拆箱与遍历循环
10_3_3 条件编译
10_4 实战_插入式注解处理器
10_4_1 实战目标
10_4_2 代码实现
10_4_3 运行与测试
10_4_4 其他应用案例
10_5 本章小结
第11章 后端编译与优化
11_1 概述
11_2 即时编译器
11_2_1 解释器与编译器
11_2_2 编译对象与触发条件
11_2_3 编译过程
11_2_4 实战_查看及分析即时编译结果
11_3 提前编译器
11_3_1 提前编译的优劣得失
11_3_2 实战_Jaotc的提前编译
11_4 编译器优化技术
11_4_1 优化技术概览
11_4_2 方法内联
11_4_3 逃逸分析
11_4_4 公共子表达式消除
11_4_5 数组边界检查消除
11_5 实战_深入理解Graal编译器
11_5_1 历史背景
11_5_2 构建编译调试环境
11_5_3 JVMCI编译器接口
11_5_4 代码中间表示
11_5_5 代码优化与生成
11_6 本章小结
第五部分 高效并发
第12章 Java内存模型与线程
12_1 概述
12_2 硬件的效率与一致性
12_3 Java内存模型
12_3_1 主内存与工作内存
12_3_2 内存间交互操作
12_3_3 对于volatile型变量的特殊规则
12_3_4 针对long和double型变量的特殊规则
12_3_5 原子性_可见性与有序性
12_3_6 先行发生原则
12_4 Java与线程
12_4_1 线程的实现
12_4_2 Java线程调度
12_4_3 状态转换
12_5 Java与协程
12_5_1 内核线程的局限
12_5_2 协程的复苏
12_5_3 Java的解决方案
12_6 本章小结
第13章 线程安全与锁优化
13_1 概述
13_2 线程安全
13_2_1 Java语言中的线程安全
13_2_2 线程安全的实现方法
13_3 锁优化
13_3_1 自旋锁与自适应自旋
13_3_2 锁消除
13_3_3 锁粗化
13_3_4 轻量级锁
13_3_5 偏向锁
13_4 本章小结
附录A 在Windows系统下编译OpenJDK 6
附录B 展望Java技术的未来[2013年版]
附录C 虚拟机字节码指令表
附录D 对象查询语言[OQL]简介
附录E JDK历史版本轨迹
::下载地址::
>> 评论