1.类文件结构

1-1 魔数
1-2 版本
1-3 常量池

2.字节码指令

2-1 javap工具
2-2 图解方法执行流程
(1)原始 Java 代码
(2)编译后的字节码文件
(3)常量池载入运行时常量池
(4)方法字节码载入方法区
(5)main 线程开始运行,分配栈帧内存
(6)执行引擎开始执行字节码
2-3 练习-判断结果
2-4 构造方法
(1)cinit()V
(2)init()V
2-5 方法调用
2-6 多态的原理
2-7 异常处理
(1)try-catch
(2)多个 single-catch 块的情况
(3)finally
(4)finally中的return
(5)finally不带return
2-8 synchronized

3.编译期处理

3-1 默认构造器
3-2 自动拆装箱
3-3 泛型集合取值
3-4 可变参数
3-5 foreach循环
3-6 switch 字符串
3-7 switch 枚举
3-8 枚举类

4.类加载阶段

4-1 加载
4-2 链接
(1)验证
(2)准备
(3)解析
4-3 初始化
(1)cinit方法
(2)发生的时机

5.类加载器

5-1 启动类加载器
5-2 扩展类加载器
5-3 双亲委派模式
5-4 自定义类加载器
(1)使用场景
(2)步骤

6.运行期优化

6-1 即时编译
(1)分层编译
(2)方法内联