1. 运行时数据区(略)
2. 类加载
- 生命周期
加载;链接(验证,准备,解析);初始化;使用;卸载
- 双亲委派机制
- 启动类加载器;扩展类加载器;应用类加载器。
- 类加载器在加载类的时候会先询问自己的父加载器,可以通过重写 losdClass() 方法打破。
3. class 文件
魔数;常量池;类型信息;方法信息;域信息。
4. GC
4.1 G1 垃圾回收全过程(CMS的异同)
- youngGC 是一个 STW 的过程,伊甸园区满时触发;
- mixedGC 在老年代达到45%时触发,先进行一个 youngGC 与 Roots 标记,这是 STW 的,之后并行三色标记,之后再进行一个 STW 的快照校准,之后是并行清理。
4.2 记忆集与脏卡表
G1 中每个 Regin 都维护一个记忆集,记录指向此 Regin 的指针,避免遍历老年代,脏卡表用于更新记忆集。