[JVM篇]分代垃圾回收

分代垃圾回收

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

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

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

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

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

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

相关推荐
麦兜*1 小时前
【算法】十大排序算法超深度解析,从数学原理到汇编级优化,涵盖 15个核心维度
java·汇编·jvm·算法·spring cloud·ai·排序算法
mild_breeze1 小时前
jvm的栈和堆
jvm
@小了白了兔1 小时前
JVM——内存布局、类加载机制及垃圾回收机制
jvm
种时光的人2 小时前
JVM面试通关指南:内存区域、类加载器、双亲委派与GC算法全解析
java·开发语言·jvm·面试
丶小鱼丶3 小时前
JVM之【Java虚拟机概述】
java·jvm
练习时长两年半的程序员小胡8 小时前
JVM 性能调优实战:让系统性能 “飞” 起来的核心策略
java·jvm·性能调优·jvm调优
崎岖Qiu8 小时前
【JVM篇11】:分代回收与GC回收范围的分类详解
java·jvm·后端·面试
猿小蔡-Cool17 小时前
Android Studio Memory Monitor内存分析核心指标详解
android·java·jvm
啊阿狸不会拉杆1 天前
《Java 程序设计》第 12 章 - 异常处理
java·开发语言·jvm·python·算法·intellij-idea
wa的一声哭了1 天前
Python多进程并行multiprocess基础
开发语言·jvm·人工智能·python·机器学习·语言模型·自然语言处理