1. 《深入理解java虚拟机》学习目录
发布于 2022年 01月 25日 01:17
背景
这本书是周志明基于jdk1.7编写的,有些概念有点过时了
其他参考附录:
- hashmap: www.jianshu.com/p/8324a3457…
- idea内存泄漏、溢出分析工具JProfiler: blog.csdn.net/qq_22194659…
- JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)www.cnblogs.com/dennyzhangd…
目录
一、简介
- java虚拟机简介
- java虚拟机的发展历程
- java虚拟机编译实战
二、自动内存管理机制
- 内存管理
- 运行时数据区域
- 程序计数器
- java虚拟机栈
- 本地方法栈
- java堆
- 方法区
- 运行时常量池
- 直接内存
- HotSpot虚拟机
- 对象的创建过程
- 对象的内存布局
- 对象的访问定位
- 堆栈溢出
- java堆溢出
- 虚拟机栈和本地方法栈溢出
- 方法区和运行时常量池溢出
- 本机直接内存溢出
- 运行时数据区域
- 垃圾回收器和内存分配策略
- 垃圾回收基础
- 引用计数法
- 可达性分析算法
- 对象引用的模式
- 对象死亡判断方法
- 回收方法区
- 垃圾回收算法
- 标记-清除算法
- 复制算法
- 标记-整理算法
- 分代收集算法
- 算法之间如何权衡
- HotSpot算法实现
- 枚举根节点
- 安全点
- 安全区域
- 垃圾回收器
- Serial收集器
- ParNew收集器
- Parallel Scavenge 收集器
- Serial Old收集器
- Parallel Old收集器
- CMS 收集器
- G1 收集器
- GC日志分析
- 垃圾回收参数设置总结
- 内存分配与回收策略
- 对象优先在Eden分配
- 大对象直接进入老年代
- 长期存活的对象将进入老年代
- 动态对象年龄判定
- 空间分配担保
- 垃圾回收基础
- 虚拟机性能监控和故障处理工具
- JDK命令行工具
- jps:虚拟机进程状况工具
- jstat:虚拟机统计信息监视工具
- jinfo:java配置信息工具
- jmap:java内存映射工具
- jhat:虚拟机堆转储快照分析工具
- jstack:java堆栈跟踪工具
- HSDIS:JIT生成代码反汇编
- JDK可视化工具
- JConsole:Java监视与管理控制台
- VisualVM:多合一故障处理工具
- JDK命令行工具
- JVM调优案例分析与实战
- 案例分析
- Eclipse运行速度调优
三、虚拟机执行子系统
- Class文件结构
- 概述
- 结构分析
- 魔数与Class文件的版本
- 常量池
- 访问标志
- 类索引、父类索引、接口索引集合
- 字段表集合
- 方法表集合
- 属性表集合
- 字节码指令
- 字节码与数据类型
- 加载和存储指令
- 运算指令
- 类型转换指令
- 对象创建与访问指令
- 操作数栈管理指令
- 控制转移指令
- 方法调用和返回指令
- 异常处理指令
- 同步指令
- 公有设计和私有实现
- Class文件结构发展历程
- 虚拟机Class加载机制
- 概述
- 类加载的时机
- 类加载的过程
- 加载
- 验证
- 准备
- 解析
- 初始化
- 类加载器(ClassLoader)
- Class和ClassLoader
- 双亲委派模型
- 破坏双亲委派模型
- JVM字节码执行引擎
- 概述
- 运行时栈帧结构
- 局部变量栈
- 操作数栈
- 动态连接
- 方法返回地址
- 附加信息
- 方法调用
- 解析
- 分派
- 动态类型语言
- 基于栈的字节码解释执行引擎
- 解释执行
- 基于栈的指令集与基于寄存器的指令集
- 基于栈的解释器执行过程
- 类加载及执行子系统案例与实战
- 案例
- Tomcat
- OSGI
- 字节码生成技术与动态代理的实现
- 自己实现远程执行功能
- 案例
四、程序编译与代码优化
- 编译器优化
- Javac编译器
- Javac源码与调试
- 解析与填充符合表
- 注解处理器
- 语义分析与字节码生成
- Java语法糖
- 泛型与类型擦除
- 自动装箱、拆箱与遍历循环
- 条件编译
- 实战:插入式注解处理器(自己写一个注解)
- 实战目标
- 代码实现
- 运行期优化
- HotSpot虚拟机内的即时编译器
- 解释器与编译器
- 编译对象与触发条件
- 编译过程
- 查看及分析即时编译结果
- 编译优化技术
- 公共子表达式消除
- 数组边界检查消除
- 方法内联
- 逃逸分析
- Java与C/C++编译器对比
五、 高效并发
- Java内存模型与线程
- 硬件效率、一致性
- Java内存模型
- 主内存与工作内存
- 内存交互操作
- volatile内存语义分析
- 对long\duble变量特殊规则
- 原子性、可见性、有序性
- happen-before原则
- java线程
- 线程实现
- 线程调度
- 线程状态转换
- 线程安全与锁
- 线程安全
- 线程安全定义
- 线程安全的实现
- 锁优化
- 自旋锁
- 锁消除
- 锁粗化
- 轻量级锁
- 偏向锁