JVM堆区是一块用于存储对象实例的内存区,同时也是GC执行垃圾回收的重点区域。降低GC回收频率,提升回收效率是其优化的方向。
存储在JVM中的对象可以被划分为两类:一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速。而另外一类对象的生命周期却非常长,在某些极端的情况下还能够与JVM的生命周期保持一致。因此对这些不同生命周期的Java对象,应该采取不同的垃圾收集策略,分代收集由此诞生。目前几乎所有的GC都采用分代收集算法。所以Java堆区域如果进一步细分的话,还可以分为:
1、新生代;
1-1、Eden;
1-2、From Survivor;
1-3、To Survivor;
2、老年代;