JAVA虚拟机(JVM jvm 内存模型)
2022-09-01 17:42:14 3 举报
为你推荐
查看更多
JAVA虚拟机(JVM jvm 内存模型)
作者其他创作
大纲/内容
字节码执行引擎
内存区域1
Eden80%
User
Object
SerialOld(标记-整理)
修改
执行
堆
Java虚拟机栈(线程)
thisa=1b=2
年轻代1/3
GC标记整理算法
iadd
本地方法栈Native MethodStack
GC Root Set
程序计数器Program Couter Register
CMS(标记-清除)
垃圾收集
objectA
2
分带年龄>15或超出S区最大限制
内存回收
垃圾收集器组合*连线则表明可搭配使用
类装载子系统
JAVA虚拟机
ParallelScavenge(复制算法)
引用不可达将被虚拟机回收
main()-栈帧......
操作数栈
运行时数据区(内存模型)
istoreiload
内存区域2
objectB
objectD
ireturn
内存区域整理之前
JDK9取消
GC ROOT
full GC标记整理算法
iconstistore
老年代2/3
方法出口
minor GC复制算法
Serial(复制算法)
G1(标记-整理+复制算法)
Survivor区
java Math.class
Serial:串行ParNew、Parallel:并行CMS、G1:并发
内存区域整理之后
1
......
ParallelOld(标记-整理)
动态链接
From10%
局部变量表
object@3d6d4372
复制
方法区(元空间)Method Area常量+静态变量+类信息
objectC
3
Java虚拟机栈(线程)VM Stack
GC可达性分析算法
Math.class
user@1b6d3586
ParNew(\t复制算法)
main线程
GC Root Set的对象组成①在虚拟机栈(栈帧中引用的对象,譬如各个线程被调用的方法堆栈中使用到的参数、局部变量、临时变量等)②在方法去中类静态属性引用的对象,譬如Java类的引用类型静态变量③在方法区中常量引用的对象,譬如字符串常量池(String Table)里的引用④在本地方法栈中JNI(即通常所说的Native方法)引用的对象⑤Java虚拟机内部的引用,入基本数据类型的Class对象,一些常驻的异常对象(比如NullPointException、OutOfMemoryError等),还有系统类加载器⑥所有被同步锁(synchronized关键字)持有的对象⑦反应Java虚拟机内部情况的JMXBean、JVMTI中注册的回调、本地缓存等⑧其他对象也可以“临时性”的加入
To10%
老年代
GC复制算法
f()-栈帧(Stack Frame)
年轻代
堆Heap
GC ROOT(被清理)
收藏
0 条评论
回复 删除
下一页