JVM内存模型
2023-06-02 10:25:53 0 举报
一图详解JVM内存模型,运行原理,GC垃圾回收机制。
作者其他创作
大纲/内容
老年代剩余可用空间<之前每次majorGC从年轻代进入老年代的平均值
使用
Eden内存不够时,发生minorGC
类加载器
为jvm提供native方法
JVM虚拟机运行时数据区(内存模型)
Eden
.class文件
方法(LIFO)入栈和出栈
线程私有
直接内存
类装载子系统:
老年代
执行指令码
是
方法区(永久代:常量+静态变量+类元信息【1.8之后采用 :元空间:存元信息,堆:常量+静态变量】)
栈帧
3、应用程序加载器(加载classpath路径下的类包 ,主要就是加载自己写的那些类)
验证
操作内存
执行引擎
之前
1、启动类加载器(用于支撑JVM运行的位于JRE的lib目录下的jar包,如:rt.jar,charsets.jar等)
OOM如果回收完还是没有其他空间存放新的对象
minorGC
准备
survivos
年轻代(内存比例:8:1:1)
程序计数器(记录字节码运行的行号,也是唯一不会产生内存溢出的区域)
FullGC(majorGC)
in
from
线程共有
局部变量表操作数栈方法出口...
否
解析
是否有配置老年代分配担保参数-xx:HandlePromotionFailure
大对象直接进入老年代(可以设置JVM参数确定对象大小判断)
本地方法区
JVM
类加载
卸载
老年代老年代剩可用空间<年轻代所有对象空间之和
连接
堆:存放对象实例
初始化(执行静态代码块)
改变计数器的值
4、自定义加载器(用于加载自定义路径下的类包)
2、拓展类加载器(用于支撑JVM运行的位于JRE的ext目录下的JAR包)
0 条评论
下一页