JVM-GC-(Mark-Sweep)标记清除算法

原理:

  1. 当堆有效的存储空间被使用耗尽时,触发Stop the world(停止整个程序),然后便进行标记和清除
  2. 标记:搜集从根对象集合(可达性算法的内容点)开始遍历,在对象是被引用链所连接的就进行标记,即记录为可达的对象,记录在Header中
  3. 搜集对堆内存从 开始到结束 进行线性的遍历,如果某对象在其Header中未被标记未可达对象,便将其进行回收

优点: 实现简单
缺点:效率不高;在进行GC时,触发STW,停止整个应用程序,用户体验度差;清理的内存中出现大量的内存碎片;此时就需要维护空闲列表

清除:在内存中并非真正意义上的删除,而是将所需要清除的地址保存在空闲的地址列表中,后期需要加载新对象时,判断清除的地址空间是否充足,充足情况下就进行 存放、覆盖

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值