垃圾回收算法

本文详细介绍了JVM的三种垃圾回收算法:标记-清除(简单但可能导致碎片)、标记-复制(连续内存但浪费空间)和标记-整理(无碎片但效率低)。讨论了它们的优缺点。
摘要由CSDN通过智能技术生成

JVM垃圾回收算法

JVM(Java Virtual Machine)使用垃圾回收算法来管理内存,自动释放不再使用的对象,以避免内存泄漏和内存溢出。

标记-清除

标记清除是最简单和干脆的一种垃圾回收算法,他的执行流程是:当 JVM 标记出内存中的垃圾以后,直接将其清除,但是这样有一个很明显的缺点,就是会导致内存空间的不连续,也就是会产生很多的内存碎片。

在这里插入图片描述

优缺点

优点:速度快,因为不需要移动和复制对象

缺点:会产生内存碎片,造成内存的浪费

标记-复制

首先将内存划分成两个区域。新创建的对象都放在其中一块内存上面,当快满的时候,就将标记出来的存活的对象复制到另一块内存区域中(注意:这些对象在在复制的时候其内存空间上是严格排序且连续的),这样就腾出来一那一半就又变成了空闲空间了。

在这里插入图片描述

优缺点

优点:内存空间是连续的,不会产生内存碎片。

缺点:

1、浪费了一半的内存空间。

2、复制对象会造成性能和时间上的消耗。

标记-整理

标记:它的第一个阶段与标记-清除算法是一模一样的,均是遍历 GC Roots,然后将存活的对象标记。

整理:移动所有存活的对象,且按照内存地址次序依次排列,然后将末端内存地址以后的内存全部回收。因此,第二阶段才称为整理阶段。

在这里插入图片描述

优缺点

优点:

1、不会产生内存碎片

2、不会浪费内存空间

缺点:太耗时间(性能低)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值