又是你好,今天我們就來簡單的了解下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 + " has been destroyed");
    }
}

“這是有道理的,艾莉。”

“但是你應該知道,Java 虛擬機決定是否調用這個方法。通常情況下,在方法內部創建並在方法完成時聲明為垃圾的對象會立即​​銷毀,而不會調用任何finalize ()。這個方法更像備份而不是可靠的解決方案。最好的選擇是在對象仍然存在時釋放所有系統資源(通過將對其他對象的引用設置為 null)。稍後我將詳細介紹此方法的優點和細微差別。此時,你只需要了解兩件事:有這樣一個方法,而且(驚喜!)它並不總是被調用。”