对象生命周期和GC

对象生命周期和GC,第1张

对象生命周期和GC

一、

辛存者0区别名:from区

辛存者1区别名:to区

from区和to区,他们的位置和名分,不是固定的,每次GC后会交换,GC之后有交换,谁空谁是to

 

eden区和from区,to区比例:8:1:1

新生代和老年代的比例:1/3,2/3

发送轻GC 的过程就是 复制--->清空---->互换

1、第一次GC的时候会把活着的对象拷贝到SurvivorFrom区,当Eden区再次触发GC的时候会扫描Eden和From区域,对于这两个区域进行垃圾回收,经过这次回收后还存活的对象,则直接复制到To区域(如果有对象的年龄已经达到了老年的标准,则赋值到老年代区),同时把这些对象的年龄+1

2、清空eden、SurvivorFrom

然后,清空Eden和SurvivorFrom中的对象,也即复制之后有交换,谁空谁是to

 二、永久带

 

 对于HotSpot虚拟机,很多开发者习惯将方法区称只为“永久代”,单严格本质上说两者不同,或者说使用永久代来实现方法去而已,永久代是方法区(相当于一个接口interface)的一个实现,jdk1.7的版本中,已经将原本放在永久代的字符串常量池移走。

永久去(java7之前有)

永久存储区是一个常驻内存区域,用于存放JDK自身所携带的Class,Interface的元数据,也就是说它存储的运行环境必须的类信息,被转载进此区域的数据是不会被垃圾回收期回收掉的,关闭JVM才会释放次区域占用的内存。 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5722550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存