ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GC的了解

2022-02-07 23:00:22  阅读:143  来源: 互联网

标签:对象 S1 S0 计数器 了解 GC 引用


1.GC的四种算法的原理与优缺点

  • 引用计数法
    每个对象都存在一个引用计数器。在被引用的时候,都会让计数器+1。当引用消失时,计数器-1。当GC时,引用为计数器为0的对象就是垃圾对象没有被使用,即被回收。
    缺点:如果两个对象相互引用,则无法被回收。类似于死锁。我拉着你,你拉着我,我们永远有引用。

  • 复制算法
    存在于年轻代中,当年轻代发生GC时,开始销毁eden区、幸存者0区(简称S0)和幸存者1区(S1)的对象。存活下来的对象会被打包到一起。一起分派到S0或S1中。S0与S1内存空间大小相等,每次都只能往一个区域分派,然后清空另一个区域。例如这次把存活对象放到了S0,那么S1的数据就会被清空。下次反之。一直如此的复制,交换。每次交换后,活下来的对象年龄+1。到了16次,送往养老区。
    优点:由于对象全体打包完一起放到一块区域,没有碎片,且性能较好。
    缺点浪费空间,永远有一个S0或S1空着,并且假设对象的存活率较大(例如有很多静态对象,无法回收),每次复制都是将那堆对象在翻来覆去的的复制。这时候效率就不高了。这里其实很像链表与数组的区别。数组有着连续的空间,十分整齐的排列。但是需要占用一块完整的空间。而链表是可以分散开的,有着前引用与后引用去寻址。

  • 标记清除法

  • 标记压缩

标签:对象,S1,S0,计数器,了解,GC,引用
来源: https://blog.csdn.net/BrotherJinJin/article/details/122815885

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有