java中的垃圾回收算法

news2024/11/17 17:41:26

java中有四种垃圾回收算法,分别是:

标记清除法、标记整理法、复制算法、分代收集算法

1、标记清除法:
第一步:利用可达性去遍历内存,把存活对象和垃圾对象进行标记;

第二步:在遍历一遍,将所有标记的对象回收掉;

特点:效率不行,标记和清除的效率都不高;标记和清除后会产生大量的不连续的空间分片,可能会导致之后程序运行的时候需分配大对象而找不到连续分片而不得不触发一次GC(垃圾回收);

 2、标记整理法:
第一步:利用可达性去遍历内存,把存活对象和垃圾对象进行标记;
第二步:将所有的存活的对象向一段移动,将端边界以外的对象都回收掉;

特点:适用于存活对象多,垃圾少的情况;需要整理的过程,无空间碎片产生;

 3、复制算法:
将内存按照容量大小分为大小相等的两块,每次只使用一块,当一块使用完了,就将还存活的对象移到另一块上,然后在把使用过的内存空间移除;
特点:不会产生空间碎片;内存使用率极低;

4、分代收集算法:
根据内存对象的存活周期不同,将内存划分成几块,java虚拟机一般将内存分成新生代和老生代,在新生代中,有大量对象死去和少量对象存活,所以采用复制算法,只需要付出少量存活对象的复制成本就可以完成收集;老年代中因为对象的存活率极高,没有额外的空间对他进行分配担保,所以采用标记清理或者标记整理算法进行回收;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+MySQL基于ssm的超市进销存会员管理系统

随着我国经济的高速增长,各类超市和便利店也是越来越多,超市和便利店的出现,方便了人们对于日常生活消费的需要,为了能够更好的对超市的顾客进行服务,大多数超市提出了会员的机制,通过这种机制来增加用户的黏度,在给用户提供更好的服务的同时也提高了营业额。 超市会员管理系统…

转行,你考虑清楚了吗?

“我为什么离开中石油”写完后,引发了不少人的共鸣,一些在工作中苦苦挣扎、渴望转行的朋友,在微信上询问我转行情况和转行建议。 非常感谢朋友们的关心和信任,然而我并非什么职业规划大师,只是一个在石油圈混了五年的…

ChatGPT进化的秘密

本文作者,符尧 yao.fued.ac.uk,爱丁堡大学 (University of Edinburgh) 博士生,本科毕业于北京大学,与彭昊,Tushar Khot 在艾伦人工智能研究院 (Allen Institute for AI) 共同完成英文原稿,与剑桥大学郭志江…

搞懂Redis 数据存储原理,别只会 set、get 了

我的核心模块如图 1-10。 图 1-10 Client 客户端,官方提供了 C 语言开发的客户端,可以发送命令,性能分析和测试等。 网络层事件驱动模型,基于 I/O 多路复用,封装了一个短小精悍的高性能 ae 库,全称是 a si…

【C语言】函数的声明_函数定义_函数调用_函数递归 [函数的基本使用]

文章目录前言1.函数是什么?2.C语言中函数的分类2.1 库函数2.2 自定义函数3.函数的参数3.1 实际参数(实参):3.2 形式参数(形参):4.函数的调用4.1 传值调用4.2 传址调用4.3 练习5.函数的嵌套调用和链式访问5…

羊没羊,好像也没那么重要了!

疫情管控刚一放开,我就一直在想,如何降低羊🐑的概率和影响。​由于家里老人身体不太好,孩子年龄又太小,加上只有我一个人整天在外面跑,感染的几率最大。所以最后想了一下,决定先在外面租个房子&…

零基础学编程,怎么开始学习?

编程零基础的话,我先建议你看一些经典的书籍,抑或是通俗易懂的计算机常识书。 这几本书各有千秋,我参考了我自己尝试过的几种方法,可以为你选择最适合你的学习方法提供一种参考。首先要判断你的决心有多大,一则花费金…

华为云会议,开会就是如此简单

现在工作节奏加快,高效沟通,快速决策,立刻执行成为组织提升整体效益的关键,而会议作为企业之间重要的沟通工具,被广泛的应用于日常工作中,云会议更可以跨越时空的限制,更为方便快捷。 华为云会议…

UML类图语法介绍

UML类图语法介绍一 官方定义基本介绍UML 图分类建模工具二 六大关系2.1 依赖关系代码体现UML图示2.2 泛化关系代码体现UML图示2.3 实现关系代码体现UML图示2.4 关联关系代码体现UML图示2.5 聚合关系代码体现UML图示2.6 组合关系代码体现UML图示一 官方定义 UML - Unified model…

设置开机自动启动jupyter notebook及远程访问的方式

jupyter notebook远程访问设置 1.安装 conda activate abc #激活虚拟环境[不在虚拟环境中可以省略此步骤] pip install jupyter #安装 jupyter notebook --generate-config #生成配置文件备注:配置文件的所在路径一般为 ~/.jupyter/jupyter_notebook_config.py 注…

四、ArrayList底层源码详解

文章目录特点底层源码分析创建无参构造器有参构造器传入集合的有参构造器扩容注意new ArrayList(0)菜鸟教程ArrayList讲解特点 可以加入控制null(可加入多个)底层是数组实现的ArrayList基本等同于Vector,除了ArrayList是线程不安全(执行效率高)看源码(没有synchron…

“消费盲返”就像一盒巧克力,你永远不知道下一颗是什么味道

如今电商平台竞争越来越激烈,传统电商直播短视频带货拼团带货内卷严重,我就经常刷抖音某多多看见各种优惠,感觉以前在实体店上面买东西都是冤大头,但是随之而来的是商家引流成本越来越高。 这些年来,互联网迅猛发展&am…

Allegro如何批量添加丝印文字操作指导

Allegro如何批量添加丝印文字操作指导 当需要在PCB上需要大量添加丝印文字的时候,是个较大的工作量,Allegro支持批量添加丝印文字到PCB上,如下图 具体操作如下 新建一个文本文档在文本文档中添加好需要的文字

红黑树详解

1.概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近…

漏洞丨cve2010-3333

作者:黑蛋 一、漏洞简介 cve-2010-3333是一个Office 2003 的栈溢出漏洞,其原因是在文档中读取一个属性值的时候,没有对其长度验证,导致了一个溢出,看着很简单的一个漏洞,却又有点恶心人。 二、漏洞环境 …

Python学习基础笔记五十五——接口类和抽象类

# 设计模式: 《设计模式》 接口类:Python原生不支持; 抽象类:Python原生支持的。 例: from abc import abstractmethod, ABCMetaclass Payment(metaclassABCMeta): # 元类 默认的元类是 type 规范类abstract…

MyBatis学习 | 全局配置文件

文章目录一、简介二、各个标签2.1 properties(属性)2.2 settings(设置)2.3 typeAliases(类型命名)2.4 typeHandlers(类型处理器)2.5 plugins(插件)2.6 enviro…

电容这段走线影响这么大?

公众号:高速先生 作者:李远恒 一日,来了一个电源仿真项目,雷工像往常一样熟练的打开了PCB文件,先是例行查板。不查不要紧,一查还真有问题,话不多说直接上图: 定睛一看,这…

星火计划学习笔记——参考线平滑算法解析及实现(以U型弯道场景仿真调试为例)

文章目录1. Apollo参考线介绍1.1 参考线的作用1.2 导航规划的路线1.3 为什么需要重新生成参考线1.4 ReferenceLine数据结构1.5 ReferencePoint数据结构1.6 参考线处理流程1.7 参考线生成2. 参考线平滑算法2.1 参考线平滑算法总览2.2 参考线平滑算法流程2.2.1 设置中间点anchor …

康希通信冲刺科创板上市:上半年收入2亿元,计划募资约8亿元

12月21日,格兰康希通信科技(上海)股份有限公司(下称“康希通信”)在上海证券交易所递交招股书,准备在科创板上市。本次冲刺科创板上市,康希通信计划募资7.82亿元。 据贝多财经了解,康…