在 Java 开发中,垃圾回收(Garbage Collection,GC)是内存管理的重要组成部分。它负责自动回收不再使用的内存,避免内存泄漏和手动管理内存的复杂性。本文将快速回顾 Java GC 的基础知识,帮助你更好地理解其原理和应用。
一、GC 基本概念
1. GC 三种常见语义
- Garbage Collection:指垃圾回收的技术和过程,是内存管理的核心部分。
- Garbage Collector:实现垃圾回收技术的具体组件,负责执行垃圾回收任务。
- Garbage Collecting:指垃圾回收的实际操作或行为,即垃圾回收器执行回收的过程。
2. Mutator:应用程序的内存管理角色
Mutator 是指负责创建对象的部分,即应用程序本身。它在堆内存中分配新对象,这些对象可能成为垃圾。Mutator 通过 TLAB(线程本地分配缓冲区)快速分配对象,减少锁竞争,提高效率。
3. TLAB(线程本地分配缓存)
TLAB 是为每个线程分配的专用内存区域,用于快速分配对象。它减少了内存分配时的锁竞争,提高了分配效率。
4. Card Table(卡表)
Card Table 用于标记内存页状态,记录哪些卡页中有指向其他内存区域对象的引用。它帮助垃圾回收器高效处理跨代引用。
二、GC 的重要性
1. 应用性能影响分析
- GC 暂停时间:GC 会占用 CPU 资源,可能导致应用程序停顿。优化 GC 可以减少停顿时间,提高应用响应速度。<