java中JVM的垃圾回收算法

1.复制算法
基本思想:
将内存分为两块,每当发生垃圾回收的时候就把一块内存中还存活的对象复制到另一块中,然后将原来内存中的对象清空,如此反复。
复制算法的优点:

  • 不会产生内存碎片

复制算法的缺点:

  1. 浪费了一半的内存空间(有一半的空间是不能存任何对象的)
  2. 只适合对象存活率低的情况(假如说对象存活率很高的话,进行复制的时候会消耗大量的时间)

2.标记清除算法
基本思想:
垃圾回收时,遍历整个堆,对堆中存活的对象进行标记,然后再重新遍历整个堆,对没有被标记的对象进行垃圾回收
在这里插入图片描述
缺点:

  1. 两次扫描(标记的时候一次,清楚的时候一次),效率很低,比较耗时
  2. 会产生内存碎片

3.标记压缩算法
基本思想:
首先遍历整个堆,对堆中还存活的对象进行标记,然后再次扫描整个堆,将堆中还存活的对象向一端移动
在这里插入图片描述
优点:

  1. 和标记清除算法相比,只需要维护一个边界内存地址就行,减少了很多空间开销
  2. 没有内存碎片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值