深入解析JVM核心

深入讲解 Java 虚拟机技术原理。

时间2天。

Java 虚拟机

  • JVM概述
  • JVM生命周期
  • JVM 体系结构
  • 体系结构图
  • 程序计数器 Program Counter (PC)
  • Java堆
  • Stack 栈概念
  • Java 栈
  • 方法区
  • 本地方法栈
  • 运行时常量池
  • 直接内存
  • 运行时栈帧结构
  • 栈帧图
  • 局部变量表
  • 操作数栈
  • 动态连接
  • 方法返回地址
  • 方法调用
  • 方法解析

Java Class 文件

  • Java class 作用
  • class文件内容
  • class字段说明
  • 基本信息
  • 常量池
  • 标志和类索引
  • 各类型索引
  • 字节码文件分析
  • 字节码分析原图
  • 字节码指令(一)
  • 字节码指令(二)
  • 字节码指令(三)

类文件校验和类加载

  • class文件校验器
  • class文件结构检查
  • 类型数据的语义检查
  • 字节码验证
  • 符号引用的验证
  • Class Loader 体系结构
  • 三层类加载器机制
  • JDK9以后类加载机制
  • JDK9类加载代码
  • JDK9类加载器
  • 类加载过程
  • 类加载步骤
  • 初始化场景
  • 加载
  • 验证
  • 准备
  • 解析
  • 初始化
  • 类加载过程
  • 自定义类加载器步骤
  • Tomcat 类加载
  • Tomcat 类加载图示
  • OSGi 类加载
  • OSGi 类加载过程

ASM 和 Cglib

  • asm
  • 核心类
  • Cglib
  • Cglib重点类
  • Cglib 使用
  • asm 和 Cglib 范例

理解 JVM

  • JVM 参数选项
  • JVM堆中常用参数设置
  • JVM 启动过程
  • 启动过程源码分析
  • 方法声明
  • Hotspot 组成模块
  • prims 模块
  • JNI 子模块
  • JNI 调用图例
  • JTMTI 子模块
  • runtime 模块
  • Thread 子模块
  • JVM初始化代码
  • GC模块

Java GC

  • 垃圾收集
  • 垃圾收集分代
  • 永久代和元空间
  • TLAB
  • 内存对象分配
  • 堆内存分配
  • 垃圾收集步骤
  • 根搜索算法
  • Java 对象引用关系
  • 垃圾收集算法
  • 标记-清除算法(Mark-Sweep)
  • 复制算法(Copying)
  • 标记-整理算法(Mark-compact)
  • 分代回收算法 Generational Collection
  • 垃圾收集设计
  • 垃圾收集图示(新生代)
  • 垃圾收集图示(老生代)
  • Stop the World
  • Safepoint安全点
  • GC log日志记录
  • 垃圾回收日志示例
  • GC jstat实例

GC 实现

  • 主流垃圾收集器(一)
  • 主流垃圾收集器(二)
  • 主流垃圾收集器(三)
  • JVM 默认垃圾收集器
  • CMS GC
  • G1 GC
  • G1 运行过程
  • 混合回收
  • G1 回收过程