Java垃圾回收全过程涉及哪些复杂机制和步骤,能否详细解释?
- 内容介绍
- 相关推荐
本文共计1105个文字,预计阅读时间需要5分钟。
JVM中的一次完整垃圾回收(GC)过程。以HotSpot虚拟机为例,其中一种常用的垃圾回收器是G1(Garbage-First)。堆(Heap)的划分在HotSpot JVM中通常分为以下几个部分:
JVM中一次完整的垃圾回收(GC)过程。这里以HotSpot虚拟机为例,并将参考其中的一种常用的垃圾回收器:G1(Garbage-First)。
堆的划分
在HotSpot JVM中,堆(Heap)通常被划分为以下几个部分:
- 年轻代(Young Generation): 这部分进一步分为Eden区和两个Survivor区(S0和S1)。
- 老年代(Old Generation): 存放长时间存活的对象。
- 元空间(Metaspace): 存放类的元数据。
阶段1:Minor GC
1.1 初始标记(Initial Mark)
- 停止所有的应用线程(Stop-The-World, STW)。
- 标记从GC Roots直接可达的对象。
1.2 并发标记(Concurrent Mark)
- 在应用线程运行的同时,标记通过已标记对象间接可达的对象。
本文共计1105个文字,预计阅读时间需要5分钟。
JVM中的一次完整垃圾回收(GC)过程。以HotSpot虚拟机为例,其中一种常用的垃圾回收器是G1(Garbage-First)。堆(Heap)的划分在HotSpot JVM中通常分为以下几个部分:
JVM中一次完整的垃圾回收(GC)过程。这里以HotSpot虚拟机为例,并将参考其中的一种常用的垃圾回收器:G1(Garbage-First)。
堆的划分
在HotSpot JVM中,堆(Heap)通常被划分为以下几个部分:
- 年轻代(Young Generation): 这部分进一步分为Eden区和两个Survivor区(S0和S1)。
- 老年代(Old Generation): 存放长时间存活的对象。
- 元空间(Metaspace): 存放类的元数据。
阶段1:Minor GC
1.1 初始标记(Initial Mark)
- 停止所有的应用线程(Stop-The-World, STW)。
- 标记从GC Roots直接可达的对象。
1.2 并发标记(Concurrent Mark)
- 在应用线程运行的同时,标记通过已标记对象间接可达的对象。

