Java垃圾收集实例

众所周知,
Java中的对象是引用变量。它们被声明为特定类型,并且它们的类型永远不会改变。

在编写Java程序时,会创建许多对象,但实际上并非所有对象都在程序中使用。内存空间已分配给所有这些对象,但其中一些未被使用,因此必须使该内存空间可用于创建其他新对象。

这就是垃圾收集发挥作用的地方。

如果为任何对象分配了null或它们丢失了引用,那么Java运行时环境(JVM)就有责任将该对象的位置标记为垃圾回收(GC)。

当我们运行Java程序时,Java虚拟机将创建三个线程。

  1. 主线程-负责执行Java程序的main方法。

  2. Scheduler Thread-它负责调度线程。

  3. 垃圾收集器线程-负责通过为对象分配null来清理被取消引用的对象的内存堆。

在清除分配有null的对象的内存之前,它将调用finalize()该对象的方法。执行finalize()方法后,将执行该finalize()方法下的操作,并销毁对象。

System.gc();
/* This Method Destroys Location of those Objects which are marked with GC.*/

注意: System.gc()遵循基于堆栈的操作,我们将在接下来的示例中看到这一点。