[JVM篇]分代垃圾回收

分代垃圾回收

分代收集法 是目前大部分 JVM 所采用的方法,其核心思想是根据对象存活的不同生命周期将内存划分为不同的域,一般情况下将 GC 堆划分为老生代 (Tenured/Old Generation)和新生代(Young Generation)。老生代的特点是每次垃圾回收时只有少量对象需要被回收,新生代的特点是每次垃圾回收时都有大量垃圾需要被回收,因此可以根据不同区域选择不同的算法。

新生代(标记-复制算法)

每次垃圾收集都能发现新生代存活对象特别少,只有少量存活,死去对象特别多,因此选用"标记-复制算法",只需付出少量存活对象的复制成本就可以完成收集。

老年代(标记-整理算法)

老年代活着的对象特别多,适用于"标记-整理"或"标记-清除"算法。

因为对象存活率高,没有额外空间对它进行分配担保,就必须采用"标记-整理"或"标记-清除"算法来进行回收,不必进行内存复制,且直接腾出空闲内存。

相关推荐
曼巴UE539 分钟前
UE5.3 C++ 接口初步使用
开发语言·jvm·c++
yh云想4 小时前
《Java线程池面试全解析:从原理到实践的高频问题汇总》
jvm·面试·职场和发展
给我个面子中不9 小时前
JUC、JVM八股补充
java·开发语言·jvm
iナナ19 小时前
初识JVM
java·jvm
boonya1 天前
Java JVM核心原理与面试题解析
java·开发语言·jvm
代码程序猿RIP1 天前
【Linux】线程封装
linux·jvm·c++
DKPT1 天前
JVM新生代和老生代比例如何设置?
java·开发语言·jvm·笔记·学习
静心观复1 天前
JVM 的 C1/C2 编译器
服务器·jvm
知彼解己1 天前
JVM 运行时数据区域
java·开发语言·jvm
江团1io01 天前
一篇文章带你彻底搞懂 JVM 垃圾收集器
java·开发语言·jvm