JVM内存结构
2021-04-14 16:37:28 0 举报
JVM虚拟机架构资料
作者其他创作
大纲/内容
元空间
默认:160Meden满,执行回收GC:minor GC收回无引用垃圾对象
2
新生代1/3默认:200M
iadd进行a+b运算得出结果:3
程序计数器:记录程序执行记录,记录执行行号
堆
元空间满了就会触发Full GC
本地方法接口
from survivor(1/10)
imul运算:c=(a+b) * 10
math2
执行
类加载器
栈
本地方法栈
运行时数据区
1、new对象放到Eden(一般情况下);
操作数栈
方法出口
math
动态链接
native方法库
程序计数器:串联记录执行记录
iload_2取出局部变量1:b的值2
老年代2/3默认:400M
bipush 压入整数:10
15
math2对象这个对象放到堆里面
iconst_0 和istore_1局部变量0标识int a=1
老年代
栈FILO(先进后出)
main线程
堆内部结构
istore_3局部变量2标识int c=30
to survivor(1/10)
main()-栈帧
修改值:计算器和值
第一次:eden满了就会回收eden+from,有调用的会移到to里面第二次回收:当eden满了就会回收eden+同,有调用就会移到from里面;重复以上操作带15次的才会放到老年代;老年代
eden
iload_3取出局部变量2:c的值30
.class文件
默认:40M
iconst_1 和istore_2局部变量1标识int b=2
math对象这个对象放到堆里面
方法区(远空间)+常量+静态变量+类元信息
JVM虚拟机
局部变量表
直接内存
字节码执行引擎
JVM参数解析
survivor
iload_1取出局部变量0:a的值1
1
1、解析编译码:生成字节码可以通过javap -c进行解析;2、程序计数器:用于存放执行指令的地方,记录执行行号;
main栈帧
GC Root:在被引用对象中栈里面:线程栈没有结束的时候;本地方法栈的变量;方法区:静态变量;
Math.class
0 条评论
下一页