JVM
1. JVM基础
- JVM实现
- Oracle Hotspot
- 解释器
- 编译器
- java是解释型语言还是编译性语言
- BEA JRocket
- IBM J9
- OpenJ9
- Oracle Hotspot
- class 文件
- 文件概览
- 魔数
- class文件版本
- Class常量池
- 访问标志
- 类索引,父索引 接口索引
- 字段表
- 方法表
- 属性表
- 字节码指令
- 字节码与数据类型
- 加载和存储指令
- 运算指令
- 类型转换指令
- 对象创建与访问指令
- 操作数栈与管理指令
- 控制转移指令
- 方法调用和返回指令
- 异常处理指令
- 同步指令
- 文件概览
- JVM构成
- 类加载子系统
- 类加载概述
- 类加载器
- 双亲委派模型
- 破坏双亲委派模型
- 类加载的时机
- 类加载的过程
- 类加载概述
- 运行时数据区
- 执行引擎
- 本地方法接口
- 垃圾收集模块
- 类加载子系统
2. JVM内存结构
- JVM运行时数据区
- 程序计数器
- java虚拟机栈
- 本地方法栈
- java堆
- 方法区
- 运行时常量
- 直接内存
- 虚拟机对象剖析
- 对象创建
- new
- 类加载
- 分配空间
- 分配方式
- 指针碰撞
- 空闲列表
- 分配线程安全解决方案
- CAS
- TLAB
- 分配方式
- 内存空间初始化
- 对象布局
- 对象头
- 运行时数据部分
- 指针类型
- 实例数据
- 对齐填充
- 对象头
- 对象访问
- 句柄访问
- 直接访问地址
- 对象创建
3. 垃圾回收
- 垃圾回收
- 判断算法
- 引用计数法
- 可达性分析法
- 引用介绍
- 强引用
- 软引用
- 弱引用
- 虚引用
- 回收算法
- 标记-清除法
- 复制算法
- 标记-整理算法
- 分代回收算法
- 垃圾回收器
- 新生代
- Serial收集器
- ParNew收集器
- Parallel Scavenge收集器
- 老年代
- Serial Old收集器
- Parallel Old收集器
- CMS
- G1
- 新生代
- 判断算法
- GC日志分析
4. JVM优化
- JVM性能监控与故障处理工具
- JDK命令工具
- jps
- jstart
- jinfo
- jmap
- jhat
- jstack
- HSDIS
- JDK可视工具
- JConsole
- VisualVM
- JDK命令工具
- 调优案例
5. JMM与并发
- java内存模型
- 主内存与工作内容
- 内存间交互操作
- 对于voliatile型变量的特色规则
- 原子性,可见性,有序性
- java与线程
- 线程实现
- 线程调度
- 状态转换
- 线程安全与锁优化
- 线程安全
- java语言中的线程安全
- 线程安全实现方法
- 锁优化
- 自旋锁与自适应锁
- 锁消除
- 锁粗化
- 轻量级锁
- 偏向锁
- 线程安全