JVM的GC概述

名词解释

GC:Gabage Collection,指JVM堆内存区域的垃圾回收

Minor GC:年轻代垃圾回收,所有的Majar GC都会触发进程暂停,只是这个实际很短

Major GC:也叫Full GC,年老代垃圾回收

年轻代和年老代的GC策略是不一样的,年轻代一般采用的是复制算法

Minor GC和Major GC的发生时机

Minor GC发生Eden区域被占满时。第一次触发gc时,Eden存活的对象被复制到Survivor Space的To区。每次gc完成后,Eden和From区的数据被清空,用于存放新的数据,且Survivor Space的2个区域地位对调,原来的From区成为To区,原来的To区变成From区,From区所有对象年龄+1。再次发生gc时,From区超过年龄的对象会被移入年老代,其他存活对象和Eden中的存活对象被复制到To区,Eden无法完成移动的对象被移入年老区。

Major GC发生在Old Generation区域被占满时,Major GC与Minor GC算法不同,相对要慢很多。

原文地址:https://www.cnblogs.com/zhi-leaf/p/10629882.html