滁州易推,您最值得信赖的滁州网站建设公司
  13687364536     913676469@qq.com      网站地图 
RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-18:30
推荐扫一扫添加微信咨询
微信二维码
关闭右侧工具栏

营销知识

垃圾收集GC
  • 浏览量:
  • 发表时间:2019-06-23 14:45:07
  • 来源:易推网络

使用C语言的开发人员都知道内存管理一直很头疼,你必须管理对象的生命周期,不正确的内存释放或使用可能导致程序例外,Java有一个GC概念,可以自动为您释放内存。让我们看看它如何管理内存

GC意味着垃圾收集,这意味着垃圾收集。Java将判断一个对象是否已达到其生命的终点(无需)来执行垃圾收集。

首先,要回收垃圾,首先必须确定哪个是垃圾对象。有两种方法

1.引用计数方法,此方法对每个生成的对象都有一个计数,只要有一个对象引用他,数字加一,有对象如果他打破了联系,他将减去一个。如果对象的计数为0、则此时它将被视为垃圾对象并将被回收。但是,这种方法的缺点是它无法解决循环引用的问题,例如,引用b,b引用c,c指的是a,此时三个对象的计数不等于0、垃圾收集器无法回收它们

2.可达方法也称为搜索方法。它指的是根的概念。对象的任何引用都可以作为垃圾对象到达。当然,你不能锤击它,但如果它全部两次,你就无法到达垃圾对象的根源

接下来是垃圾收集算法,有几种

1.标记方法,先标记垃圾对象,标记后垃圾对象完成后,它将被清除

原则是标记多个gar当然,对于垃圾来说,存储区域中的bage对象也可能是不同的。这具有发生存储器碎片的缺点。当分配连续空间时,不能使用存储区域,并且标记过程和清洁过程不太有效。,所以这只是一个基本算法。

2.标记压缩算法,可以说是解决了标记问题由算法留下的也将是内存碎片。该算法首先标记垃圾对象,然后将垃圾对象放在内存区域的一侧,而不是垃圾对。将它放在内存区域的另一侧,然后清除垃圾对象。此算法的优点是不存在内存碎片,但它会更改原始位置。

3.副本算法,将存储区划分为两个相同大小的区域。当一个区域的内存已满时,活动对象将被复制到另一个快速内存区域,然后清除原始内存块,使用当前使用的内存,因此没有内存碎片问题,但缺点是把记忆分成两部分。当存在更多幸存物体时,需要多次执行。复制,这也会降低效率

JAVA中的世代收集算法

因为各种对象的生命周期不一致,我们将它们分为新世代和旧世代

新一代是一个短命的对象,我们使用复制算法,老年是一些生命周期对于较长的对象,我们使用标记清理和标记压缩来清理垃圾对象。

本文由滁州易推网络公司提供,公司主要提供全椒网站建设业务,站内文章大部分为原创,部分转载于网络,若转载请标注 /article/17_385.html

上一篇:网站外包经常遇到的需求问题
下一篇:浅谈企业网站建设