jvm垃圾回收

GC发生在JVM那个部分,有几种GC,他们的算法是什么?

GC发生在JVM那个部分?

发生在堆(heep)里面。

GC是什么?

分代收集算法

次数上频繁收集Young区  minor GC

次数上较少收集Old区  full  GC

基本不动 Perm区

GC算法总体概述

1.引用计数法(较难处理循环引用)

2.复制算法

年轻代使用的minor GC采用的是复制算法(Copying)

(1)优点:1.没有标记和清除的过程,效率高 2.没有内存碎片,可以利用bump-the-pointer快速实现内存分配

          缺点:需要双倍空间

3.标记清除(Mark-Sweet)

老年代一般使用标记清除,或者是标记清除与标记整理混合实现

(1)标记:从根集合开始扫描,对存活对象进行标记

          清除:扫描整个内存空间,回收未被标记的对象,使用freelist记录可以区域

(2)优点:不需要额外空间

          缺点:两次扫描,耗时严重;会产生内存碎片

4.标记压缩(Mark-Compact)

老年代一般使用标记清除,或者是标记清除与标记整理混合实现

(1)标记:从根集合开始扫描,对存活对象进行标记

          压缩:再次扫描,并往一端滑动存活对象

(2)优点:没有内存碎片,可以使用bump-the-pointer

           缺点:需要移动对象的成本

5.标记清除压缩(Mark-Sweet-Compact)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值