jvm分代以及GC入门了解

新生代:

新生代被分成三个部分 eden区和2个survivor区(from和to两个分区)。当创建对象,需要jvm分配内存时,会在新生代的eden区寻找合适的内存区域。如果当eden区内存不够时,会触发minor GC。eden区存活对象和from区的存活对象将会被复制到to区。当to区的对象年龄超过了晋升的年龄设置,对象将被提升到老年代。新生代GC用的是复制算法

年老代:

 年老代里存放的都是存活时间较久的,大小较大的对象,因此年老代使用标记整理算法。当年老代容量满的时候,会触发一次Major GC(full GC),回收年老代和年轻代中不再被使用的对象资源。年老代算法用的是标记-清除

永久代:

指内存的永久保存区域,主要存放Class和Meta(元数据)的信息。Class在被加载的时候被放入永久区域。它和和存放实例的区域不同,GC不会在主程序运行期对永久区域进行清理。所以这也导致了永久代的区域会随着加载的Class的增多而胀满,最终抛出OOM异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值