Minor GC 和 Young GC,“新生代”也可以称之为“年轻代”, 这两个名词是等价的 那么在年轻代中的Eden内存区域被占满之后,实际上就需要触发年轻代的gc,或者是新生代的 gc,下面我们就来说一说关于gc干什么用的各种GC傻傻分不清?我们一起去了解并探讨一下这个问题吧!

gc干什么用的?各种GC傻傻分不清

gc干什么用的各种GC傻傻分不清

1、Minor GC和Young GC

Minor GC 和 Young GC,“新生代”也可以称之为“年轻代”, 这两个名词是等价的。 那么在年轻代中的Eden内存区域被占满之后,实际上就需要触发年轻代的gc,或者是新生代的 gc。

此时这个新生代gc,其实就是所谓的“Minor GC”,也可以称之为“Young GC”, 这两个名词,就专门针对新生代的gc。

2、Old GC

老年代gc,称之为“Old GC”。

3、Full GC

对于Full GC指的是针对新生代、老年代、永久代的全体内存空间的 垃圾回收,所以称之为Full GC。 从字面意思上也可以理解,“Full”就是整体的意思,所以就是对JVM进行一次整体的垃圾回收, 把各个内存区域的垃圾都回收掉。 换句话说,Full GC就是针对JVM内所有内存区域的一次整体垃圾回收。

4、Major GC

Major GC,这个其实一般用的比较少,是一个非常容易混淆的概念词。 有些人把Major GC跟Old GC等价起来,认为他就是针对老年代的GC, 也有人把Major GC和Full GC等价起来,认为他是针对JVM全体内存区域的GC。 所以针对这个容易混淆的概念,建议大家以后少提。 如果听到有人说这个Major GC的概念,大家可以问清楚,他到底 是想说Old GC呢?还是Full GC呢?

5、Mixed GC

Mixed GC是G1中特有的概念,其实说白了,主要就是说在G1中,一旦老年代占据堆内存的45%了, 就要触发Mixed GC,此时对年轻代和老年代都会进行回收。 对应的参数设置:“-XX:InitiatingHeapOccupancyPercent”,他的默认值是45%, 可以进行按需要修改。

,