垃圾收集(Garbage Collection,GC)是Java虚拟机(JVM)管理内存的重要机制。在垃圾收集过程中,有三个常见的术语:Minor GC、Major GC(或称为Full GC)、Full GC。它们分别表示不同的垃圾收集阶段和方式。
-
Minor GC(年轻代GC):
- 发生在年轻代(Young Generation),主要用于回收新生代的垃圾对象。新创建的对象首先被分配在年轻代,当年轻代空间不足时就会触发Minor GC。通常情况下,Minor GC的发生频率比较高,因为大多数对象都很快变为垃圾。
-
Major GC(老年代GC):
- Major GC(或称为Old GC)是指对老年代(Tenured Generation)进行的垃圾收集。老年代主要存放生存时间较长的对象,当老年代空间不足时就会触发Major GC。Major GC通常伴随着一次或多次的Minor GC,因为在新生代垃圾收集的同时,一些对象会被移到老年代。
-
Full GC:
- Full GC是对整个堆空间(包括年轻代和老年代)的垃圾收集。与Major GC的区别在于,Full GC会清理整个堆,包括新生代、老年代以及持久代。Full GC通常发生在某些特定的情况,例如永久代(在Java 8及之前的版本中)或元空间(在Java 8及之后的版本中)空间不足,或者由于某些策略的触发而导致。
垃圾收集的目标是释放不再使用的对象,从而回收内存空间。不同的垃圾收集阶段针对不同的内存区域,以达到高效管理内存的目的。Minor GC和Major GC通常是并发的,而Full GC可能会导致较长时间的停顿,因为它需要对整个堆进行收集。优化垃圾收集是Java虚拟机的一个重要方面,以提高程序的性能和响应时间。
Was this helpful?
0 / 0