系统相关
首页 > 系统相关> > JVM的内存模式

JVM的内存模式

作者:互联网

程序计数器

虚拟机栈

本地方法栈

堆 (新生代和老生代) 新生代(eden,two survivor) 老生代(永久代(现在变成元数据))

元数据->类的字节流,常量,静态方法 (metaSpace的默认值在64位中20.75M)当第一次满的时候回触发GC;

GC的算法: 引用计数法,标识清理法,复制算法,标记-整理算法,分代收集算法,系统线程划分(串行收集器,并行收集器,并发收集器),根搜索算法(设立若干种根对象,当任何一个根对象到某一个对象均不可达时,则认为这个对象是可以被回收的

其中根搜索方法的根如下:

1、栈(栈帧中的本地变量表)中引用的对象。

2、方法区中的静态成员。

3、方法区中的常量引用的对象(全局变量)

4、本地方法栈中JNI(一般说的Native方法)引用的对象。

对象内存的结构:头对象(markword和klass)(markword:用于存储对象自身的运行时数据) (klass 指向元空间数据的指针)(64位markword和kclass为8个字节,32位markword和kclass为4个字节)

                          实例数据,填充对齐(整个对象必须是8个字节的倍数)数组长度(为4个字节)

标签:字节,收集器,对象,模式,算法,markword,内存,JVM,方法
来源: https://www.cnblogs.com/jimmy03/p/12512639.html