[JVM篇]分代垃圾回收

分代垃圾回收

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

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

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

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

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

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

相关推荐
开源架构师1 小时前
JVM 与云原生的完美融合:引领技术潮流
jvm·微服务·云原生·性能优化·serverless·内存管理·容器化
意倾城1 小时前
JVM内存模型
java·jvm
LUCIAZZZ3 小时前
JVM之虚拟机运行
java·jvm·spring·操作系统·springboot
我爱写代码?6 小时前
Spark 集群配置、启动与监控指南
大数据·开发语言·jvm·spark·mapreduce
Absinthe_苦艾酒7 小时前
JVM学习专题(二)内存模型深度剖析
jvm
abc小陈先生11 小时前
JVM类加载
jvm
小马爱打代码21 小时前
Minor GC与Full GC分别在什么时候发生?
jvm
alden_ygq1 天前
当java进程内存使用超过jvm设置大小会发生什么?
java·开发语言·jvm
多敲代码防脱发1 天前
导出导入Excel文件(详解-基于EasyExcel)
java·开发语言·jvm·数据库·mysql·excel
北漂老男孩1 天前
JVM对象头中的锁信息机制详解
jvm