“嗨。今天我们来简要了解一下 finalize() 方法。Java 虚拟机在销毁对象之前调用 finalize() 方法。该方法用于释放系统资源或执行其他清理任务。实际上,此方法与 Java 中的构造方法完全相反。你应该记得构造方法是用于创建对象的。”

“Object 类包含 finalize() 方法,这意味着所有其他类都是如此(因为所有 Java 类都是从 Object 类派生的)。你可以直接在类中实现自己的 finalize() 方法。”

“下面是一个示例:”

示例:
class Cat
{
    String name;

    Cat(String name)
    {
        this.name = name;
    }

    protected void finalize() throws Throwable
    {
        System.out.println(name + " 已销毁");
    }
}

“说的有道理,艾莉。”

“但是,你应该知道 Java 虚拟机决定是否调用此方法。通常,在方法内部创建并在方法完成时声明为垃圾的对象会立即销毁,而无需调用 finalize()。此方法更像是备份,而不是可靠的解决方法。最佳选择是在对象仍处于存活状态时释放所有系统资源(通过将对其他对象的引用设置为 null)。稍后,我将详细介绍此方法的优点和细微差别。到目前为止,你只需了解两件事:有这样一种方法,并且(惊喜!)这种方法并不总是被调用。”