G1还有新生代和老年代么?

G1垃圾收集器打破了传统新生代和老年代的界限,通过Region概念实现动态内存分配。在程序运行过程中,Region可以在年轻代和老年代之间转换,每次GC后根据对象存活状况调整。这种设计使得内存管理更为灵活,减少了停顿时间。
摘要由CSDN通过智能技术生成

G1依旧存在着老年代和新生代,只不过相比起CMS等垃圾回收器将新生代和老年代区域划分的那么明显, 在G1中,老年代和新生代逐渐变成逻辑上的概念了。首先G1将整个堆内存划分成一个个Region,可以先将这个Region想像成是个完全中立的内存空间,它没有任何归属。随着程序的运行,对象会不断被新建,这些对象首先会进入年轻代,但是此时G1只有Region的概念,那么这些被分配到新对象的Region就是属于年轻代,慢慢的,随着对象的增多,就触发了GC,存活的对象就会被分配到其他空闲的Region,此时这些Region就归属于老年代。而一旦GC后Region中对象全部被回收,Region就会恢复空白属性,等待下一次分配。因此在G1中,每一个Region在不同的时刻都可能属于不同的分代,可能是老年代也可能是年轻代,所以可以感觉到,新生代和老年代各自的内存区域是会不断变动的,由G1来具体做控制。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值