JVM 垃圾回收(GC)机制
垃圾回收(GC)是 JVM 的核心功能之一,能够自动回收不再使用的对象,防止内存泄漏。了解垃圾回收算法和 JVM 提供的不同 GC 策略,可以帮助优化应用性能。
垃圾回收算法:
标记-清除(Mark-Sweep):标记所有活跃的对象,然后清除未被标记的对象。
复制(Copying):将对象复制到新区域,适合于年轻代的垃圾回收。
标记-整理(Mark-Compact):在标记阶段后,不仅清除垃圾,还将存活对象移动到内存的一端,减少内存碎片。
常见的垃圾收集器:
Serial GC:单线程垃圾回收,适合小型应用。
Parallel GC:多线程垃圾回收,适合多核 CPU。
CMS(Concurrent Mark-Sweep):并发收集器,适用于低延迟的应用。
G1(Garbage-First):替代 CMS 的收集器,适用于大多数场景,结合了并发与分区回收的优点。
ZGC 和 Shenandoah:适用于大内存和低延迟的场景,极大地减少垃圾回收停顿时间。
License:
CC BY 4.0