Minor GC、Major GC和Full GC之间的区别?

2,945 阅读1分钟

「每天一道面试题」Minor GC、Major GC和Full GC之间的区别?

Minor GC

Minor GC指新生代GC,即发生在新生代(包括Eden区和Survivor区)的垃圾回收操作,当新生代无法为新生对象分配内存空间的时候,会触发Minor GC。因为新生代中大多数对象的生命周期都很短,所以发生Minor GC的频率很高,虽然它会触发stop-the-world,但是它的回收速度很快。

Major GC

Major GC清理Tenured区,用于回收老年代,出现Major GC通常会出现至少一次Minor GC。

Full GC

Full GC是针对整个新生代、老生代、元空间(metaspace,java8以上版本取代perm gen)的全局范围的GC。Full GC不等于Major GC,也不等于Minor GC+Major GC,发生Full GC需要看使用了什么垃圾收集器组合,才能解释是什么样的垃圾回收。