关于JVM GC的几个名词概念

前言

在某次面试中面试官问到了Major GC和Full GC区别,没答出来,于是查找并记录几个简单的GC定义。

GC 的分类

针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种: 第一种:

  • Partial GC:并不收集整个GC堆的模式
  • Young GC:只收集young gen的GC
  • Old GC:只收集old gen的GC。只有CMS的concurrent collection是这个模式
  • Mixed GC:收集整个young gen以及部分old gen的GC。只有G1有这个模式

第二种: Full GC:收集整个堆,包括young gen、old gen、perm gen(如果存在的话)等所有部分的模式。

所谓Major GC通常是跟full GC是等价的,收集整个GC堆。但因为HotSpot VM发展了这么多年,外界对各种名词的解读已经完全混乱了,当有人说“major GC”的时候一定要问清楚他想要指的是上面的full GC还是old GC。

reference

R大的回答