码出高效学习过程中的心得。
1.什么是堆(Heap)?
堆存储着所有的实例对象,堆由垃圾回收器自动回收,堆区由各子线程共享使用。
堆分为新生代(Young)、老年代(Old)。
2.对象出生在哪里?
对象出生于新生代Eden区。
3.什么是YGC?
Eden区装满的时候,触发YGC(Young Garbage Collection)。垃圾回收时在Eden区实现清楚策略,没有被引用的对象直接回收。依然存活对象送到Survivor区(S0或S1)。
每次使用的是Eden区和S0区(也可能是S1,举例说明)。采用复制算法将所有存活对象复制到未使用的S1区。然后清空Eden区和S0(正在使用)。下一次就交换两块S区的角色。
4.什么是FGC
老年区空间不足时触发FGC。采用标记算清除算法或者标记整理算法。
如果