当前位置:   article > 正文

JVM垃圾回收(GC)以及各类垃圾回收器_full gc 使用的是 什么垃圾回收算法

full gc 使用的是 什么垃圾回收算法

GC主要发生在heap(堆)中
GC有识别垃圾和清除垃圾两步,分别的算法为下列算法。
识别垃圾算法:
1.引用计数法 2.可达性分析
引用计数法存在循环引用的问题(引用一次对象,计数加一,当方法结束,计数减一。如果在方法中对象相互引用,导致栈中方法关闭后对象技术大于0,不被识别为垃圾)

可达性分析(也叫根搜索法GC Roots)
只要可以顺着GC Roots找到堆中的对象,就不是垃圾。
在这里插入图片描述

清除垃圾算法:
1.标记清除算法(Mark-Sweep)
2.复制算法(copying)
3.标记整理算法(Mark-Compact)
4.分代回收

1)标记清除算法
特点:实现简单,但是有内存碎片。
先进行标记,标记的垃圾直接清除,不对内存区域进行整理。内存空间被一个个对象隔开,没有连续,因此清除后留下的空闲空间为一个个内存碎片。
2)复制算法:
特点:无内存碎片,但是内存利用率低。
回收前将内存区域分为两半,有垃圾的一半内存区域先标记垃圾,将存活的对象依次排放到原有的未使用的内存区域,再将垃圾清除后放到存活对象的后面,之后开始使用另一半的未使用的

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号