JVM内存模型图
2021-03-07 12:08:52 9 举报
JVM
作者其他创作
大纲/内容
栈桢
from(1/10)
栈桢:一个线程中可能有多个方法,每个方法都有一个独立空间栈桢。局部变量表:保存方法内定义的局部,font color=\"#ff3333\
线程1
运行时数据区(内存模型)
线程计数器
程序计数器(每个线程都有一个独立的计数器区域,存储线程执行的位置)
回到调用方的位置
局部变量中引用对象
类加载子程序
老年代(2/3)
方法出口
survivor区
栈(线程栈)
方法区(原空间):存放共享的静态变量、类字节码信息、常量
操作数栈
本地方法栈
to(1/10)
线程实例化对象不断放入eden中,当eden被放满时,根据可达算法,将有被引用对象转移到from区中,触发mintor GC 回收eden中的垃圾对象。from区幸存对象也有可能变为垃圾对象,将有被引用对象转移到to区中,再次触发minor GC 回收,from和to可能会来回转移。其中每次幸存对象中分代年龄都会累加,当分代年龄变量超过15,则对象会被转移到老年代
局部变量表
动态链接
本地方法栈(保存本地方法引用,如C语言实现的)
当老年代内存满时,会发生内存溢出,heap speaceOOM
将对象转移到from中
minor GC
堆
Eden区(8/10)
年轻代
类字节码执行器
full GC(整个堆中进行垃圾回收)
线程栈(每个线程独有)
当老年代存满时触发full GC
XXX.class
0 条评论
下一页