当前位置: 首页 > news >正文

JVM虚拟机:JVM的垃圾回收清除算法(GC)有哪些

垃圾回收清除算法

引用计数法

标记清除

拷贝算法

标记压缩

引用计数法

有一个引用指向对象,那么引用计数就加1,少一个引用指向,那么引用计数就减1,这种方法了解一下就好,JVM机会不会使用这种方法,因为它在每次对象赋值的时候都要维护引用计数器,且计数器本身也有一定的消耗,同时很难梳理循环引用。

标记清除

找到垃圾之后就给他标记,被标记的就可以清除了。

但是会产生一些问题,位置不连续,就会产生碎片。

还有一个问题就是耗时问题,先标记再清除,那么就是扫描了两次会耗时。

当对象的存活率比较高的时候,这个方法的效率还是比较高的。

拷贝(Copying)

拷贝算法如上图所示,首先将可用空间分为两部分,一部分用于存储,一部分留空。当存满一部分之后,此时就将存活的对象顺序复制到空的那部分。这样就解决了碎片的问题,但是浪费了空间,只是用了一半的空间。但是移动对象的时候,需要调整对象的引用。

该方法只扫描一次,适合于存活对象比较少的情况。

标记压缩(Mar

http://www.lryc.cn/news/215890.html

相关文章:

  • 我应该删除低质量页面以提高Google排名吗?
  • 【实战Flask API项目指南】之六 数据库集成 SQLAlchemy
  • MFC网络通信-Udp服务端
  • 最简单且有效的msvcp140.dll丢失的解决方法,有效的解决msvcp140.dll丢失
  • HBase理论与实践-基操与实践
  • 内存管理设计精要
  • Java——StringBuffer与StringBuilder的区别
  • 基于深度学习的菠萝与果叶视觉识别及切断机构设计
  • springboot整合七牛云oss操作文件
  • 跨国传输的常见问题与对应解决方案
  • Git(七).git 文件夹瘦身,GitLab 永久删除文件
  • 多线程锁的升级原理是什么
  • 金山文档轻维表之删除所有行记录
  • 站坑站坑站坑站坑站坑
  • 在Vue中,你可以使用动态import()语法来动态加载组件
  • 金蝶云星空表单插件获取日期控件判空处理(代码示例)
  • 通过xshell传输文件到服务器
  • centos7.9编译安装python3.7.2
  • 【教3妹学编程-算法题】2913. 子数组不同元素数目的平方和 I
  • 是否会有 GPT-5 的发布?
  • 使用 Selenium Python 检查元素是否存在
  • const迭代器与模板构造函数
  • 在Qt中解决opencv的putText函数无法绘制中文的一种解决方法
  • 【Linux】第六站:Centos系统如何安装软件?
  • Istio 实战
  • 【Midjourney入门教程4】与AI对话,写好prompt的必会方法
  • 基于单片机的智能灭火小车设计
  • [Machine Learning][Part 7]神经网络的基本组成结构
  • 精准测试:提高软件质量和用户满意度的利器
  • 代碼隨想錄算法訓練營|第五十八天|583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇。刷题心得(c++)