初步认识Java垃圾回收算法

news/2024/12/2 6:54:53/

GCRoot指被栈上直接或间接引用的对象,或被本地方法栈直接或间接引用的对象,或被方法区引用的对象。
被引用的对象是不能被删除的。
如果对象跟GCRoot并没有直接或间接相连的关系,那么这些对象就可以被删除了。

标记-清理:将需要删除的对象标记一下,标记完了再扫描一遍,把含有标记的对象删掉。缺点:内存碎片
标记-整理:在清除这个位置的垃圾之后,后面的对象要补上来。缺点:对象前移,代价大
复制:将内存一分为二,假设叫一区,二区。首先在一区创建这些对象,然后去打标记,标记是否需要被删除,等到一区快满了的时候,并不将标记对象删除,而是将不需要删除的对象复制到二区,并且是紧凑复制,这样避免了内存碎片,需要删除的就不复制到二区了。这样开销也不大,因为每次只需要复制一个对象,不需要移动所有对象。缺点:2倍内存

GC过程是怎样的呢?

Young区:
对象都会在E区出生,当E区快满的时候就会触发GC,这个GC只是Young区域的GC,所以也叫Young GC。
Young GC采用复制算法,当E区快满的时候会把需要删除的对象打上标记,不需要删除的依次复制到S0区。

S区和E区的大小比例是S0:S1:E=1:1:8,这是因为对象朝生夕死,幸存下来的比较少。

两块S区是交替工作的。等到E区快满了之后,对E区对象进行打标,将不需要删除的对象复制到S0区,之后将E区和S1区的对象全部删除。
等下次E区快满了之后,再将S0区和E区的对象全部打标,将不需要删除的对象全部复制到S1区。
S0和S1交替使用作为幸存下来的区域,它比直接将内存一分为二的利用率高一些。
E+S1复制到S0,E+S0复制到S1,E+S1复制到S0,… 如此往复

Old区:
每一次Young GC,如果对象活下来了,它的年龄就会加1,直到它满了6岁,就不往S区复制了,直接到Old区了。原因是如果一个对象6次Young GC都没清理掉,那它可能存在很长一段时间,直接把它放到Old区来维护,省的每次都在S区复制了。
Old区除了存一些年龄大的对象,还会存一些大对象,大对象指的是对象占用的内存大。
等到Old区快满了,也会触发GC,这个GC叫做Old GC,Old GC同时会伴随着Young GC,所以它又叫Full GC。Full GC会引起 Stop The Word,Stop The Word就是整个Java程序暂停,全力的来进行垃圾回收,垃圾回收主要使用标记-清理 或 标记-整理 的算法。
现在我们明确了,标记-清理、标记-整理 主要用于Full GC,复制 主要用于Young GC。
年轻代比较有名的垃圾收集器是ParNew,老年代是CMS,他们分别用了复制算法和标记-清理算法来进行垃圾回收。新版的jdk已经不建议用以前的垃圾收集器了,而是使用了全新的G1垃圾收集器


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

相关文章

空天地一体化通信网络中地面运营商的挑战与机遇

【摘 要】详细分析了天基网络和空基网络的网络特性、产业发展情况。卫星与HAPS通信具有传输覆盖广、不受地理环境限制、时延抖动小、可靠性高等特性。根据不同网络的能力特性,提出了未来空天地一体化网络在应急保障通信、立体化移动通信、偏远地区公众业务和大时空尺度下的通…

天地火宅

翻译了这么多天,一共就5页的论文,终于翻译完了。 这中间,就转载了一篇关于传销的文章,心里有不少想法啊!那么今晚就借此篇慢慢倒出来。 首先是这篇文章标题"天地火宅",这是前几天,我…

OceanBase 数据库

本节主要介绍 OceanBase 数据库产品及其技术特点。 自从 E.F.Codd 于 1970 年首次提出关系数据库模型后,关系数据库便以其易于使用的接口、完善的功能和生态而成为了 IT 领域必需的基础设施,广泛应用在各行各业,包括金融、电信、房地产、农林…

深圳海天地科技多款摄像头通过WHQL认证,获得微软徽标

微软WHQL认证代理公司  http://www.whql-china.com  深圳海天地科技有限公司多款摄像头通过微软WHQL认证,获得微软LOGO授权。海天地致力于设计出各种个人IT外围产品,在摄像头行业中有着相当大的优势。海天地摄像头种类繁多,有金刚狼系列,…

新天地

因为要为学习和以后工作打基础,所以想要多多结识程序爱好者.于是出于保护隐私的目的,只公布这里做为我的博客.我最早的博客就是csdn的,2004年的时候.不过后来有一阵子不上网,就忘记了密码.加上以前觉得这里有一些缺点,所以后来新申请的博客是spaces的.昨天换了sohu 的博客,但是…

第二章 道天地将法

第一章 道法术器势 第二章 Battle 的艺术 第三章 工具和方法 第四章 抽象的力量 第五章 结构与系统 第六章 DIKW金字塔模型 目录 前言 一、道天地将法 二、孙子兵法原文 三、孙子兵法译文 四、扩展阅读 五、总结 前言 全文2000字,预计阅读时长&#xff…

宽广的景物能让人心境开阔,比如沙漠、草原、天空、大海等。大海我在深圳和珠海都见过,在深圳第一次看到海是刚来深圳时,和同学一起去红树林玩,海边风景很好,暖暖的阳光让人心情格外的舒畅。各种飞鸟在自由地飞翔&#…

天地

前天刚过了28岁生日,人生的楼梯又上了一截,我还在努力的为了理想坚持 我坚信,只要我肯付出,就一定会成功。。。 人落魄的时候慢慢懂得了需多东西,明白了珍惜的不该珍惜的 知道了价值的不该价值的,不期望…