java内模型
2020-04-07 11:02:49 138 举报
JVM内存模型
作者其他创作
大纲/内容
demo2
Math.class
程序计数器
b=2
栈(线程)
局部变量表
堆
本地方法栈
30
类装载子系统
demo1
年轻代
方法出口
操作数栈
虚拟机
native修饰的方法,由c语言书写的方法
1.程序计数器:指向当前线程正在执行的字节码的地址,行号。线程私有,无GC.2.虚拟机栈:存储当前线程运行方法所需要的数据,指令,返回地址。线程私有,无GC。3.本地方法栈:同虚拟机栈,不同的是,它存的是本地方法的数据。4.方法区:存储类信息(字段方法的字节码,部分方法的构造器)常量,运行时常量池,静态变量,JIT(即时编译的信息)。线程共享,无GC。(java.lang.OutOfMemoryError:PermGenspace)5.堆-heap:存储类实例,一个jvm实例只有一个对内存,线程共享的,要GCjdk1.6及之前:有永久代,常量池在方法区jdk1.7:用永久代,常量池在堆区jdk1.8及之后:无永久代,常量池在元空间
S0(1/10)
Survivor区
main线程
Eden(8/10)
main()栈帧
执行引擎
xx.dll
add()-栈帧
15
Major GC
c=30
a=1
Young Gen (-Xmn)
S1(1/10)
老年代(2/3)
动态链接
程序计数器是用于存放下一条指令所在单元的地址的地方。
math类元信息
来回换
方法区(元空间)静态变量+常量+类元信息
运行时数据取(内存模型)
JVM Heap (-Xms -Xmx)
Minor GC
堆(new对象+数组)
0 条评论
下一页