「こんにちは。今日は、 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 に設定することによって) すべてのシステム リソースを解放することです。この方法の利点とニュアンスについては、後ほど詳しく説明します。この時点では、 、理解する必要があるのは 2 つのことだけです。そのようなメソッドが存在するということ、そして (驚いたことに! ) 常に呼び出されるとは限らないということです。