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

垃圾回收清除算法

引用计数法

标记清除

拷贝算法

标记压缩

引用计数法

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

标记清除

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

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

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

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

拷贝(Copying)

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

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

标记压缩(Mar

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161962.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苹果加大对印度的扶持,提高在其生产iphone的比重

KlipC报道:跟踪苹果产业链,有分析师预计2023年全球约12%-14%的iphone在印度生产,预计2024年,印度将生产20%-25%的iphone。 KlipC的合伙人Andi D表示:“近年来随着苹果对中国的以来,印度已经成为高科技制造和…

使用Nokogiri库的Python程序

python import requests from bs4 import BeautifulSoup import os # 设置 proxies {"http": "", "https": ""} # 设置headers headers { User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (K…

Pycharm-community-2021版安装和配置

一、下载Pycharm-community-2021 1.从官网下载pycharm-community Pycharm 版本官网 二、安装PyCharm 1.打开下载完成的安装包,点击Next 2.安装PyCharm到其他位置,点击Next 3.一定把更新PATH变量勾上,可以创建桌面快捷方式,创建关联,最后…

【C语法学习】13 - fscanf()函数

文章目录 1 函数原型2 参数3 返回值4 比较5 示例5.1 示例15.2 示例2 1 函数原型 fscanf():从指定流stream读取格式化输入,函数原型如下: int fscanf(FILE *stream, const char *format, ...)2 参数 fscanf()函数参数包括三部分&#xff1a…

VR全景技术在文化展示与传播中有哪些应用?

引言: 随着科技的不断进步,虚拟现实(VR)全景技术已经成为文化展示与传播领域的一项重要工具。那么VR全景技术是如何改变文化展示与传播方式,VR全景技术又如何推动文化的传承和普及呢? 一.VR技术…

【MongoDB】MongoExport如何过滤数据导出

问题 使用MongoDB处理导出数据时,想增加数据过滤操作。 例如:导出所有isGirl为true的所有数据。 分析 在mongoexport说明文档中找到了query字段和queryFile字段,用来进行数据查询匹配导出。 query字段 后面直接跟 json格式数据。 queryF…

GPT技术的崛起:改变生活与挑战未来

GPT的广泛使用引发了许多关于其影响的讨论,包括可能对就业和互联网公司的存活造成挑战。在这篇博客中,我们将探讨这些问题,并分享我们自己在日常生活中如何使用GPT的经验。 1 GPT技术的广泛应用 GPT,或者通用预训练模型&#x…

NOIP2005提高组第二轮T3:传纸条

题目链接 NOIP2005提高组第二轮T3:传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m m m 行 n n n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端…

什么是数据可视化,为什么数据可视化很重要?

数据可视化是数据的图形表示,可以帮助人们更轻松地理解和解释复杂的信息。它涉及创建数据的视觉表示,例如图表、图形、地图和其他视觉元素,以传达数据中的见解、模式和趋势。数据可视化是将原始数据转化为可操作知识的关键工具。 以下是数据…

实用篇-MQ消息队列

一、初识MQ 通讯分为同步通讯和异步通讯,同步通讯就比如我们日常生活中的打电话,看直播,能够得到及时的反馈。而异步通讯则类似于聊天软件聊天,不需要建立实时的连接,并且可以进行建立多个业务一起异步执行 1. 同步通…

Python之函数

函数介绍 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。 就比如我们使用过的:input()、print()、str()、int()、len()等都是Python的内置函数 函数的定义 函数的调用 函数使用时的注意事项: ① 参数如…

AI:62-基于深度学习的人体CT影像肺癌的识别与分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…