其他分享
首页 > 其他分享> > JVM常见问题(2)

JVM常见问题(2)

作者:互联网

GC的算法有哪些?怎么用

GC算法主要有四种:

1、引用计数法(一般不用)

​ 每个对象都有一个引用计数器,当该对象被引用一次,则计数器+1,若对象引用失效一次,则计数器-1,当计数器为0时,则说明该对象为垃圾对象。

优点:

缺点:

2、复制算法

​ 通过将内存平均分成两个部分,每次只使用其中一个部分,当这部分的内存满时,将内存中所有存活的对象复制到另一部分内存中,然后清空之前的内存,只使用当前的内存,以此交替进行。最典型的例子就是新生区的轻GC机制。

优点:

缺点:

3、标记清除算法

​ 给每个对象标记,表示该对象的状态(是否需要清除)。整个过程分为两个阶段,第一个阶段是标记阶段,这个阶段会为每个对象更新标记,确认对象是否死亡,第二个阶段是清除阶段,对那些死亡的对象进行清除。

优点:

缺点:

4、标记压缩算法

​ 该算法是在标记清除算法的基础上进行改进,在清除阶段,将所有存活对象进行移动,移至一个区域,将其余对象清除

优点:

缺点:

标签:常见问题,标记,对象,清除,算法,内存,JVM,压缩算法
来源: https://www.cnblogs.com/ymw617/p/15390500.html