用Java调用垃圾回收器(GC)的方式有几种?

Java中的垃圾收集由一个称为Garbage Collector(GC)守护程序线程进行无需等待JVM运行垃圾收集器,我们可以请求JVM运行垃圾收集器。无法保证JVM是否会接受我们的请求。

在Java中,我们可以通过两种方式手动调用垃圾收集器

  • 通过使用系统类

  • 通过使用运行时类

通过使用系统类

系统类具有静态方法gc(),该方法用于请求JVM调用垃圾回收器。

示例

public class SystemClassTest {
   public static void main(String[] args){
      SystemClassTest test = new SystemClassTest();
      test = null;      System.gc();   }
   public void finalize() {
      System.out.println("Garbage collected");
   }
}

输出结果

Garbage collected


通过使用运行时类

运行时是Java中的单例类,我们可以使用getRuntime() 方法获取运行时对象。的GC()方法是从运行时类,它是一个实例方法。

示例

public class RuntimeClassTest {
   public static void main(String[] args) {
      RuntimeClassTest test = new RuntimeClassTest();
      test = null;      Runtime.getRuntime().gc();   }
   public void finalize() {
      System.out.println("Garbage Collected");
   }
}

输出结果

Garbage collected