JVM知识体系脑图
2023-12-19 09:12:19 0 举报
AI智能生成
JVM知识体系脑图
作者其他创作
大纲/内容
概述
JVM、JRE、JDK之间的关系
JVM官方规范
几种JVM
JRockit JVM
IBM J9VM
HotSpot VM
TaoBao VM
MicroSoft VM
jvm字节码
概述
class文件结构
解析工具
字节码指令
HotSpot VM内存结构
运行时数据区(Runtime Data Space)
堆 Heap
新生代 Young
伊甸区(Eden)
幸存者区(Survivor Space)
幸存者0区 Survivor 0 Space
幸存者1区 Survivor 1 Space
老年代 Old
元空间 Metaspace
本地方法栈 Native Method Stack
程序计数器(PC寄存器)PC Register
虚拟机栈 Virtual Machine Stack
类加载器子系统 Class Loader SubSystem
字节码执行引擎
解释器
JIT即时编译器
垃圾收集器
类加载机制
哪些类需要加载
类加载流程
加载
链接
验证
准备
解析
初始化
类加载器
引导类加载器
扩展类加载器
应用类加载器
自定义类加载器
相关机制
双亲委派机制
沙箱安全机制
JDK9中类加载结构的新变化
对象内存结构
对象的实例化
对象的创建方式
new关键字
Class的newInstance方法
Constuctor的newInstance方法
。。。。。
对象的创建流程
1、类加载验证
2、分配内存
分配方式
指针碰撞
空闲列表
线程安全问题
CAS(Compare And Swap)
TLAB(Thread Local Allocate Buffer )
3、初始化
4、设置对象头
5、执行init方法
对象的内存布局
对象头
类型指针
运行时元数据
实例数据
对齐补充
对象的定位方式
句柄访问
直接指针访问
对象内存分配
逃逸分析
栈上分配
标量替换、锁消除
动态年龄判断机制
老年代空间分配担保机制
大对象直接进入老年代
垃圾回收
垃圾回收算法
垃圾定位阶段算法
引用计数算法
可达性分析算法
垃圾清除阶段算法
标记-清除算法
标记-复制算法
标记-压缩算法
垃圾回收器
Serial GC
ParNew
Parallel
Parallel Scavenge
Parallel Old
CMS(concurrent mark sweep)低延迟
回收流程
初始标记 STW
并发标记
重新标记 STW
并发清除
并发重置
相关算法
三色标记算法
漏标问题解决
写屏障
STAB 原始快照 G1使用
增量更新 GMS使用
读屏障 ZGC 使用
浮动垃圾
G1 (garbage first)低延迟,停顿时间可控,region
回收流程
初始标记
并发标记
最终标记
筛选回收(根据预估时间选择最优解)
收集器
Young Gc
Mix GC
Full Gc(STW)
ZGC(jdk11开始引用,计划支持TB级别以上)
0 条评论
下一页