JVM垃圾回收算法有哪些

news/2025/3/26 1:05:29/

标记-清除算法:标记-清除算法分为"标记"和"清除"两个阶段,首先通过可达性分析,标记出所有需要回收的对象,然后统一回收所有被标记的对象。标记-清除算法有两个缺陷,一个是效率问题,标记和清除的过程效率都不高,另外一个就是,清除结束后会造成大量的碎片空间。有可能会造成在申请大块内存的时候因为没有足够的连续空间导致再次 GC。


复制算法:为了解决碎片空间的问题,出现了"复制算法"。复制算法的原理是,将内存分成两块,每次申请内存时都使用其中的一块,当内存不够时,将这一块内存中所有存活的复制到另一块上。然后将然后再把已使用的内存整个清理掉。复制算法解决了空间碎片的问题。但是也带来了新的问题。因为每次在申请内存时,都只能使用一半的内存空间。内存利用率严重不足。


标记-整理算法:复制算法在GC 之后存活对象较少的情况下效率比较高,但如果存活对象比较多时,会执行较多的复制操作,效率就会下降。而老年代的对象在GC 之后的存活率就比较高,所以就有人提出了"标记-整理算法"。标记-整理算法的"标记"过程与"标记-清除算法"的标记过程一致,但标记之后不会直接清理。而是将所有存活对象都移动到内存的一端。移动结束后直接清理掉剩余部分。


分代回收算法:分代收集是将内存划分成了新生代和老年代。分配的依据是对象的生存周期,或者说经历过的GC 次数。对象创建时,一般在新生代申请内存,当经历一次GC 之后如果对还存活,那么对象的年龄+1。当年龄超过一定值(默认是 15,可以通过参数-XX:MaxTenuringThreshold 来设定)后,如果对象还存活,那么该对象会进入老年代。


http://www.ppmy.cn/news/1582603.html

相关文章

银联无感支付实现

云闪付无感支付,又称云闪付APP/云微小程序免密支付,用户授权签约后即可在额度范围内进行免密支付。商户凭借签约协议号发起后台扣款,扣款根据用户在云闪付APP/云微小程序上排列的银行卡顺序进行依次扣款,直至扣款成功或失败。 1.整…

黑客攻击deepseek服务原理解析

黑客可通过操纵大模型的连续对话上下文回顾机制,构造恶意请求以触发模型进入无限思考循环或超长上下文处理,从而形成对对话服务的DoS攻击(拒绝服务攻击)。这一攻击方式的核心在于利用大模型对上下文处理机制的脆弱性,通…

Android Coil3阶梯preload批量Bitmap拼接扁平宽图,Kotlin

Android Coil3阶梯preload批量Bitmap拼接扁平宽图&#xff0c;Kotlin <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-p…

ES如果要查10条数据需要从各个分片上各取多少条数据?

目录 ES如果要查10条数据需要从各个分片上各取多少条数据? 简单查询(如 match_all 或 term 查询) 深度分页查询(如 from + size 查询) 聚合查询 什么叫聚合查询? 聚合查询的基本结构 常见的聚合类型 聚合查询的执行过程 聚合查询的示例 聚合查询的应用场景 注意…

⭐算法OJ⭐判断二叉搜索树【树的遍历】(C++实现)Validate Binary Search Tree

图论入门【数据结构基础】&#xff1a;什么是树&#xff1f;如何表示树&#xff1f; 之前我们有分别讲解二叉树的三种遍历的相关代码实现&#xff1a; ⭐算法OJ⭐二叉树的前序遍历【树的遍历】&#xff08;C实现&#xff09;Binary Tree Preorder Traversal ⭐算法OJ⭐二叉树的…

《深度学习》—— YOLOv1

文章目录 YOLO简介YOLOv1简介核心思想网络结构评价指标非极大值抑制损失函数检测流程优缺点 YOLO简介 YOLOv1简介 YOLOv1&#xff08;You Only Look Once version 1&#xff09;是一种用于目标检测的开创性实时算法&#xff0c;由 Joseph Redmon 等人在 2016 年提出。它将目标…

系统架构设计师-第9章 信息安全基础知识

【本章学习建议】 根据考试大纲&#xff0c;本章主要考查系统架构设计师单选题&#xff0c;预计考3分左右。对应第二版教材第4章&#xff0c;常考点有&#xff1a;信息安全的基本要素、信息安全技术等。 https://edu.csdn.net/course/detail/40283http://软考高级系统架构设计…

【access开发】导入excel 并生成表

hi&#xff0c;大家好呀&#xff01; 最近天气越来越暖了&#xff0c;在这个春暖花开的季节了&#xff0c;每天心情应该都是美美的&#xff0c;正所谓一年之计在于春&#xff0c;在这个美好的季节&#xff0c;大家一起努力学习学习吧&#xff01;那我们来看看今天学点啥呢&…