ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

JVM垃圾收集器【如何找到垃圾、清除垃圾的算法、垃圾回收器】

2026/9/19 16:20:30 拓冰建站 浏览量
JVM垃圾收集器【如何找到垃圾、清除垃圾的算法、垃圾回收器】

JVM垃圾收集器

  • GC基本原理
    • 垃圾回收
    • 什么是垃圾?
    • 如何找到这个垃圾?
      • 1)引用计数法(Reference Counting)
      • 2)根可达算法(GCRoots Tracing)
      • 3)回收过程
      • 4)对象引用
  • 清除垃圾的算法
  • 垃圾回收器
    • 串行收集器
      • Serial
      • Serial Old
    • 并行收集器
      • Parallel Scavenge【吞吐量优先 用与并行,复制算法】
      • Parallel Old
      • ParNew收集器
      • CMS收集器【用户线程并行】
      • G1(Garbage-First)收集器
      • ZGC(Z Garbage Collector)

转自《极客时间》

GC基本原理

垃圾回收

如果不进行垃圾收集,内存数据很快就会被占满
理论计算:
计算题:256byte * 400w / 1024 /1024 = 976.5625 MB
400百万256byte请求 约等于对象 1GB

什么是垃圾?

在这里插入图片描述

如何找到这个垃圾?

引用计数法和根可达算法

1)引用计数法(Reference Counting)

通过引用计数方法,找到这个垃圾
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)根可达算法(GCRoots Tracing)

在这里插入图片描述

3)回收过程

在这里插入图片描述

4)对象引用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

清除垃圾的算法

JVM提供3种方法,清除垃圾对象:

  1. Mark-Sweep 标记清除算法
  2. Copying 拷贝算法
  3. Mark-Compact 标记压缩算法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

垃圾回收器

在这里插入图片描述

串行收集器

Serial

在这里插入图片描述

Serial Old

在这里插入图片描述

并行收集器

Parallel Scavenge【吞吐量优先 用与并行,复制算法】

在这里插入图片描述

Parallel Old

在这里插入图片描述
在这里插入图片描述

ParNew收集器

在这里插入图片描述
在这里插入图片描述

CMS收集器【用户线程并行】

在这里插入图片描述
在这里插入图片描述

G1(Garbage-First)收集器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ZGC(Z Garbage Collector)

在这里插入图片描述
在这里插入图片描述