Java 垃圾回收

2025 年 3 月 28 日 | 阅读 2 分钟

在 Java 中,“垃圾”指的是未引用的对象。

垃圾回收是自动回收运行时未使用内存的过程。换句话说,它是一种销毁未使用对象的方式。

为此,我们在 C 语言中使用 free() 函数,在 C++ 中使用 delete()。但在 Java 中,它是自动执行的。因此,Java 提供了更好的内存管理。

垃圾回收的优点

  • 它使 Java 内存高效,因为垃圾收集器会从堆内存中移除未引用的对象。
  • 它由垃圾收集器(JVM 的一部分)自动完成,因此我们无需付出额外的努力。

对象如何变为未引用?

有多种方式

  • 通过将引用置空
  • 通过将引用分配给另一个
  • 通过匿名对象等
Java Garbage Collection Scenario

1) 通过将引用置空

2) 通过将引用分配给另一个

3) 通过匿名对象


finalize() 方法

finalize() 方法在对象被垃圾回收之前每次都会被调用。此方法可用于执行清理处理。此方法在 Object 类中定义为

注意:JVM 的垃圾收集器只收集那些通过 new 关键字创建的对象。因此,如果您创建了任何未通过 new 关键字创建的对象,您可以使用 finalize 方法执行清理处理(销毁剩余对象)。

gc() 方法

gc() 方法用于调用垃圾收集器执行清理处理。gc() 方法存在于 System 和 Runtime 类中。

注意:垃圾回收由一个名为垃圾收集器(GC)的守护线程执行。此线程在对象被垃圾回收之前调用 finalize() 方法。

Java 中垃圾回收的简单示例

立即测试
       object is garbage collected
       object is garbage collected

注意:无论是终结化还是垃圾回收都不能保证。

下一个主题Java Runtime 类