gpt4 book ai didi

Java垃圾回收之分代收集算法详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java垃圾回收之分代收集算法详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

概述 。

这种算法,根据对象的存活周期的不同将内存划分成几块,新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。可以用抓重点的思路来理解这个算法.

新生代对象朝生夕死,对象数量多,只要重点扫描这个区域,那么就可以大大提高垃圾收集的效率。另外老年代对象存储久,无需经常扫描老年代,避免扫描导致的开销.

新生代 。

在新生代,每次垃圾收集器都发现有大批对象死去,只有少量存活,采用复制算法,只需要付出少量存活对象的复制成本就可以完成收集;可以参看我之前写的java垃圾回收之复制算法详解 。

老年代 。

而老年代中因为对象存活率高、没有额外空间对它进行分配担保,就必须“标记-清除-压缩”算法进行回收。参看java垃圾回收之标记压缩算法详解 。

新创建的对象被分配在新生代,如果对象经过几次回收后仍然存活,那么就把这个对象划分到老年代.

老年代区存放young区survivor满后触发minor gc后仍然存活的对象,当eden区满后会将存活的对象放入survivor区域,如果survivor区存不下这些对象,gc收集器就会将这些对象直接存放到old区中,如果survivor区中的对象足够老,也直接存放到old区中。如果old区满了,将会触发full gc回收整个堆内存.

永久代:(即方法区回收) 。

jvm的方法区,也被称为永久代。在这里都是放着一些被虚拟机加载的类信息,静态变量,常量等数据。这个区中的东西比老年代和新生代更不容易回收.

  • 效率:复制算法>标记压缩算法>标记清除算法(此处的效率只是简单的对比时间复杂度,实际情况不一定如此)。
  • 内存整齐度:复制算法=标记压缩算法>标记清除算法。
  • 内存利用率:标记压缩算法=标记清除算法>复制算法。

更多java垃圾回收分代收集算法,建议查阅下深入理解jvm.

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我的支持。如果你想了解更多相关内容请查看下面相关链接 。

原文链接:https://blog.csdn.net/linsongbin1/article/details/51678670 。

最后此篇关于Java垃圾回收之分代收集算法详解的文章就讲到这里了,如果你想了解更多关于Java垃圾回收之分代收集算法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com