码迷,mamicode.com
首页 > 其他好文 > 详细

JVM的内存模式

时间:2020-03-17 19:24:31      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:meta   bsp   空间   全局变量   线程   space   jvm   asp   一个   

程序计数器

虚拟机栈

本地方法栈

堆 (新生代和老生代) 新生代(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个字节)

JVM的内存模式

标签:meta   bsp   空间   全局变量   线程   space   jvm   asp   一个   

原文地址:https://www.cnblogs.com/jimmy03/p/12512639.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!