对象生命周期和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才会释放次区域
标签:生命周期,SurvivorFrom,Eden,对象,永久,区域,GC 来源: https://blog.csdn.net/CB_Beginner/article/details/122784002