深入理解GC(分代收集算法)垃圾回收

本文深入探讨了GC在JVM中的应用,主要关注分代收集算法,包括新生代和老年代的垃圾回收策略。文章阐述了Minor GC和Full GC的区别,并详细介绍了引用计数法、复制算法、标记清除及压缩等经典GC算法,分析了它们的优缺点和适用场景。最后,总结了不同算法在内存效率、整齐度和利用率方面的权衡,强调在实际应用中选择最适合的算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GC(分代收集算法)垃圾回收

在这里插入图片描述

JVM在进行GC时,并非每次都对上面三个内存区域一起回收,大部分时候回收的都是指新生代。因此GC按照回收的区域又分了两种类型, 一种是普通GC(Minor GC),一种是全局GC(major GC or Full GC)。

MinorGC 和Full GC的区别

普通GC(minor GC):只针对新生代区域的GC,指发生在新生代的垃圾回收动作,因为大多数Java对象存活率都不高,所以Minor GC非常频繁,一般回收速度也比较快。

全局GC(major GC or FullGC) :指发生在老年代的垃圾收集动作,出现了Major GC,经常会伴随至少一次的MinorGC(不是绝对的)。Major GC的速度一般要比Minor GC慢10倍以上。

1、GC的作用区域

在这里插入图片描述

JVM在进行GC时,并不是对这三个区域统一回收,大部分时候,回收都是新生代

  • 新生代
  • 幸存区(form to)【会交换的,不是一成不变的】
  • 老年区

GC两种类型:轻GC(普通的GC),重GC(全局GC)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值