JAVA中的GC

JAVA中的GC


回收算法包括:

引用计数法(未使用)

根据引用 计数是否为0来判断是否需要回收该空间,因会造成循环引用 ,而在JAVA中未使用 

标记-清除

从根节点标记有引用 的空间,清除未引用 的空间,

容易造成空间碎片

复制算法

将空间分为两部分,将有引用 的空间复制到另外一块,再清除所有,交替使用两块空间

有数据复制效率问题,另外空间被一分为二,可用空间数减少

标记-整理

将标记有引用 的空间整理到未使用的空间中

整理效率的问题

增量回收

每次只回收部分,减少gc线程影响正常工作的效率

分代回收

堆中内存分为新生代,老生代

新生代中通常垃圾多于存活对象

老生代中通常存活对象多于垃圾

所以:

新生代-复制算法

老生代-标记整理算法


此外,工作模式上,还有

串行回收(单线程)

并行回收

并发式回收(与正常工作线程并发执行)

独占式回收(GC工作时,暂停工作线程)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值