JVM分代收集理论与三种标记算法

本文介绍了JVM的分代收集理论,包括弱、强分代假说和跨代引用假说。根据理论,JVM将对象分为新生代和老年代,并采用不同的垃圾收集算法,如标记-清除、标记-复制和标记-整理。新生代由于对象短生命周期,适合使用标记复制算法,而老年代则更适合标记-清除或标记-整理。文章还讨论了各种收集方式,如Minor GC、Major GC、Mixed GC和Full GC。
摘要由CSDN通过智能技术生成

本文也发表于我的同名独立博客,文章地址为http://tantanit.com/jvm-generational-collection-theory-and-mark-up-algorithms/
JVM分代收集理论思维导图

什么是分代收集理论

目前大部分的JVM,在针对对象进行垃圾收集时,会将对象熬过垃圾收集的次数,视为对象的年龄。依此将对象至少划分为新生代和老年代这两个代。

分代收集理论的理论基础

分代收集理论基于以下三种假说和经验法则。

弱分代假说

绝大多数对象,在第一次垃圾收集时就会被回收,按照经验法则,这个值高达百分之九十八。

强分代假说

熬过越多次收集过程的对象越难以消亡。

跨代引用假说

该假说认为只会存在很少的跨代引用。因为只要经过一些次数的垃圾收集,即使还存在跨代引用,新生代会变成老年代,跨代引用也就自然消失了,所以跨代引用的数量不会多。在对新生代对象进行收集时,由于可能存在老年代对象引用了该对象,那么,需要找到这些老年代对象。根据跨代引用假说,这些跨代引用的数量不会太多,相比于对老年代进行扫描,在新生代建立一个全局数据结构,记录哪一块老年代内存会存在跨代引用,虽然维护这个数据结构,也需要少量的开销。但仍然显得更加合算。

根据分代理论,新生代的对象很大概率一次垃圾收集就会被回收,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值