jvm内存模型
2020-06-16 10:13:10 2 举报
jvm内存模型图--暖风出品
作者其他创作
大纲/内容
表示int、float、String类型的常量值从常量池中推送至栈顶。public static final String a = \"1\";
S0200M
Eden区
程序计数器
本地Native方法
字节码执行引擎
test=new Test()
魔数:所有的.class文件的前4个字节都是魔数,魔数的固定值为:0xCAFEBABE
本地方法栈
局部变量表
256M
OOM
直接内存
老年代(往复15次进入)
方法区
a=1b=2c=10
to(1/10)
S1200M
老年代
-Xms
线程栈
public static final int = 112345 为iconst_1,iconst_2iconst_3iconst_4 iconst_5最多到5
native方法
新生代-Xmn
1:fullGC停止所有用户级线程2:老年代已满-无可回收OOM
Main线程
JVM内存模型(运行时数据区)
Test.class
方法出口
动态链接
元空间(1.7持久带)
anewarray表示创建一个引用类型的(如接口,类,数组)并将其引用值压入栈顶
类装载子系统
类A
newarray表示创建一个引用类型的(如接口,类,数组)并将其引用值压入栈顶
Stop The World
操作数栈
堆
常用助记符
2*5
Main方法
方法A
常量池
old1G
Eden(8/10)
堆空间
重要指令一个-XX:+TraceClassLoading
类B
年轻代(from到to15次)
Eden1.6G
线程1-Xss
c=12
from(1/10)
-Xmx
-XXMetaSpaceSize-XXMaxMetaSpaceSize
Survivor区
public static final short a = 128;表示将一个短整型常量值(-32768 -32767)
test
记录指令行号
public static final short a = 7;(-128-127)
压入所在类的常量池,压至栈顶
压入操作数栈
线程二
栈空间
转换为运行时常量池
运行时数据区
Test.class文件
静态变量+常量+类元信息(运行时)
线程2-Xss
0 条评论
下一页