JVM
2021-02-02 10:11:00 9 举报
简单的JVM 图
作者其他创作
大纲/内容
JVM 堆区 Heap
N
验证
对象3
老年代2/3 堆区
内存整理前
新生代 1/3 堆区
GC Root到上述对象可达说明不回收
放 F-Queue中
存活对象
步骤1
标记复制
卸载
即时编译器
对象到GC Root是否有引用链
操作系统(Windows/Linux)
F-Queue队列中是否有跟GCRoots重连
Eden 8
S1 1
Y
对象4
老年代
清除后
End
第二次标记 & 筛选
可回收
引用计数法
连接
类加载器子系统Class Loader SubSystem
S0 1
加载
步骤3
对象1
元数据
方法返回地址
标记整理
使用
初始化
System.out.println(\"String\" + \"sowhat\");
JVM内存模型
static变量
虚拟机栈 Stack
第一次标记 & 筛选
常量池
局部变量表
可达性分析
Parallelold
保留空间
未使用
本地接口库Native Interface Library
本地方法库Native Method Library
向下搜索
标记后
解析
对象存活 不回收
标记清除
步骤2
String str = \"sowhat\";System.out.println(\"String\" + str);
对象2
内存整理后
执行引擎
GC Root B
准备
ParNew
没有重写finalize或者调用过finalize
被判死刑 = 暂时不可用存放到即将被回收的集合中
GC Root A
程序计数器
ParallelScavenge
Serial
一系列GCRoot对象
可用内存
动态链接
可用空间
Serial old
G1
Class信息
CMS
垃圾回收器
类的生命周期
操作数栈
GC Root到上述对象不可达说明可回收
可回收内存
开始
判断对象死亡 等待回收
收藏
收藏
0 条评论
下一页