码出高效学习过程中的心得。
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。采用标记算清除算法或者标记整理算法。
如果
本文详细解析了Java中堆(Heap)的概念,包括其组成部分新生代(Young)和老年代(Old),对象的诞生地——新生代Eden区,以及垃圾回收机制YGC(Young Garbage Collection)和FGC(Full Garbage Collection)的工作原理。通过了解这些关键概念,读者可以更有效地进行内存管理和优化。
347





