GC分代回收机制简单描述:
简单来说JVM内存分为了新生代(Young Generation)和老生代(Old Generation)。
新生代分为了伊甸园区(Eden)和两个幸存区(Survivor)。
当对象刚被创建的时候是被放到伊甸园区,当Eden区被对象填满时,就会执行Minor GC,经过一次回收之后,如果伊甸园区中的对象的引用不存在了,这个对象就会被解析回收;如果经过一次回收依然存在,则将该对象挪到幸存区。幸存区的扫描频率略低于伊甸园区。如果经过非常多次扫描,对象在幸存区中依然存在,那么这个时候,这个对象会被挪到老生代中。老生代的Minor GC频率远远低于新生代。老生代的对象一旦发生回收,可能会导致程序的卡顿甚至崩溃。
发生在新生代的回收---Minor GC
发生在老生代的回收--major gc
永久代存放JVM运行时使用的类。永久代同样包含了Java SE库的类和方法。永久代的对象在full GC时进行垃圾收集。