运行时数据区域
2020-04-23 18:42:57 0 举报
JVM运行时数据区域
作者其他创作
大纲/内容
long
Object obj = new Object(); public void method1(int i){ int j = 0; int sum = i+j; Object abc = obj; long start = System.currentTimeMillis(); return;// 异常 正常 } public void method2(){ File file = new File(\"\"); } public void method3(){ method3(); }
abc
老生代
程序计数器
堆:是垃圾收集器管理的主要区域,存放对象实例。所有的对象实例以及数组都是在堆上分配
1.8
s01M
JVM栈:描述的是Java方法执行的内存模型,每个方法就会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。也就是用于存储当前线程运行方法时所需要的数据、指令、返回地址。
int i
method1
s11M
JVM栈
出口
堆大小:-Xmx和-Xms
栈帧
8M
可自动扩容
数据区
局部变量表
Heap:(JVM内存模型JMM)
线程A
永久代限制:-XX:PermSize和-XX:MaxPermSize
指令
程序计数器:指向当前线程正在执行的字节码指令的地址或行号
方法区:用于存储已被JVM加载的类信息、常量、静态变量、即时编译器后的代码等数据。运行时常量池:用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。
新生代
方法区
本地方法栈:同JVM栈,区别在于本地栈为native方法服务
Heap堆
perm
永久代
新生代(1/3堆空间)老年代(2/3堆空间)
eden8M
操作数栈
=1.8
128G内存
。。。。
int j
本地方法栈
Meta space
动态链接
0 条评论
下一页