JVM内存图
2023-07-04 16:37:49 0 举报
JVM内存图
作者其他创作
大纲/内容
线程1的程序计数器
线程2的程序计数器
线程3的程序计数器
...
线程n的程序计数器
验证
解析
操作数栈
类加载器子系统
虚拟机栈
引导类加载器
Eden
s0
s1
老年代
Meta space
本地方法栈
验证 (Verify):目的在于确保Class文件的字节流中包含信息符合当前虚拟机要求,保证被加载类的正确行,不会微寒虚拟机自身安全。准备(Prepare):为类变量分配内存并且设置该类变量的默认初始值,即零值。这里不包括用final修饰的static,因为final在编译的时候就会分配了,准备阶段会显式初始化。这里不会为实例变量分配初始化,类变量会分配在方法区中,而实力变量是会随着对象一起分配到Java堆中。解析(Resolve):将常量池内的符号引用转换为直接引用的过程。实际上,解析操作往往伴随着JVM在执行完初始化之后再执行的。
方法返回地址
TABL2
方法区
TABL1
类型信息
1:2
TABL3
TABL4
准备
一些附加信息
Thread3
域信息
线程共享区域
字节码文件
线程1
线程2
栈帧
系统类加载器
Thread4
方法信息
初始化
.class文件
加载阶段
8:1:1
Thread1
动态链接
.java文件
局部变量表
PC寄存器
扩展类加载器
初始化阶段
线程独享
......
链接阶段
堆
运行时数据区
运行时常量池
string constants
class references
field references
method references
Thread2
0 条评论
回复 删除
下一页