网站首页 > java教程 正文
1、引用计算法
一种老牌回收算法,通过引用计算来回收垃圾。
引用计数器的实现很简单,对于一个对象A ,只要有任何一个对象引用了A,则A的引用计数器就加1 ,当引用失效时,引用计数器就减1。只要对象A的引用计数器的值为0 ,则对象A就不可能再被使用。
引用计数法的问题:
1、引用和去引用伴随加法和减法,影响性能。
2、很难处理循环引用。
引用有强引用、软引用、弱引用、虚引用等类型,想了解的可以查看之前发表的这篇文章:
面试被问java如何实现强引用、软引用、弱引用、虚引用你知道么?
2、标记清除
标记清除算法是现在垃圾回收算法的思想基础。标记清除算法将垃圾回收算法回收分为两个阶段:标记阶段和清除阶段
在标记阶段,首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。在清除阶段,清除所有未被标记的对象。
3、标记压缩
标记-压缩算法适合用于存活对象较多的场合 ,如老年代。它在标记-清除算法的基础上做了一些优化。标记-压缩算法也首先需要从根节点开始,对所有可达对象做一次标记。但之后,它并不简单地清理未标记的对象,而是将所有的存活对象压缩到内存的一端。之后清理边界外所有的空间。
标记清除VS标记压缩:标记清除空间碎片化而压缩会多一步压缩的过程。
4、复制算法
将原有的内存空间分为两块,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未使用的内存块中,之后,清除正在使用的内存块中的所有对象,交换两个内存的角对象复制到未使用的内存块中,之后清除正在使用的内存块中的所有对象,交换两个内存的角色,完成垃圾加收。
与标记-清除算法相比,复制算法是一种相对高效的回收方法,不适用于存活对象较多的场合如老年代。
本章节简单理解回收算法,后面继续深入理解。
下节讲解:垃圾回收原理
猜你喜欢
- 2025-07-23 JVM-垃圾回收算法和垃圾回收器(jvm1.8垃圾回收机制)
- 2025-07-23 经典技术干货分享:JVM内存模型和垃圾回收机制
- 2025-07-23 「JVM」垃圾回算法-标记整理算法(垃圾回收机制与jvm结构)
- 2025-07-23 一文讲清四种垃圾回收算法及其优缺点
- 2025-07-23 JVM垃圾回收算法总结(jvm垃圾回收算法和垃圾回收器)
- 2025-07-23 JVM垃圾回收算法详解(jvm垃圾回收算法原理)
- 2025-07-23 聊聊垃圾回收算法(垃圾回收算法手册 pdf)
- 2025-07-23 一文搞懂七种基本的GC垃圾回收算法
- 2025-07-23 JVM(四)垃圾回收的实现算法和执行细节
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)