天天看点

java高级-JVM垃圾回收机制

面试java高级-JVM垃圾回收机制

问题:GC发生在JVM哪部分,有几种GC,它们的算法是什么

GC:Gabage Collection,垃圾回收机制

GC:Generational Collection,分代收集算法

java高级-JVM垃圾回收机制

Perm永久区没有GC

1.GC发生在JVM哪部分?

答案:堆

2.有几种GC?

可以当做是问GC:Generational Collection,分代收集算法。

Minor GC和Full GC

3.它们的算法是什么?

(1)引用计数法

java高级-JVM垃圾回收机制

缺点:没办法解决对象互相引用的情况。

(2)复制算法(Minor GC)

java高级-JVM垃圾回收机制

(3)标记清除(Full GC)

java高级-JVM垃圾回收机制

标记幸存的,清除没有标记的

缺点:产生大量不连续的内存碎片

(4)标记压缩(Full GC)

相当于《深入理解Java虚拟机》中的标记整理算法

java高级-JVM垃圾回收机制

(5)标记清除压缩

实际上是算法4和5的结合,这种结合正是目前Full GC老年代正在使用的

优点:减少对象的移动成本