JVM22——分代回收机制

JVM同时综合使用了三种垃圾回收算法。这就是分代回收机制。

图片说明
内存空间可以分为新生代和老年代,新生代又可以分为伊甸园和幸存者from,幸存者to。之所以采用分代回收机制,是为了使不同的垃圾回收策略。新生代用于存放朝生夕死的对象,会频繁的进行垃圾清理。

一个对象被创建后,首先会放入新生代的伊甸园中。
图片说明

当新生区内存无法放入新的对象时,会触发一次Minor GC,将根据根可达算法判断伊甸园和幸存区From中哪些对象可以被回收,对于没有被垃圾回收的对象,根据复制算法将其复制到幸存区to中,交换幸存区From和幸存区To,并将未被回收对象寿命增1。
图片说明

当幸存区中的对象寿命到了15,说明这些对象的生命周期较长,这些对象将会被移到老年代中。老年代的垃圾回收频率较低。

图片说明

如果堆中新生代快满了,放不进新的对象,同时老年代也快满了,就会触发Full GC。对整个堆进行垃圾回收。
图片说明

java全栈日日学 文章被收录于专栏

java全栈每日必学,不要高估自己一年能做的事,不要低估自己十年能做的事

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务