"Szia ismét. Ma röviden megismerkedünk a finalize () metódussal. A Java Virtual Machine meghívja a finalize () metódust, mielőtt megsemmisít egy objektumot. A metódus rendszererőforrások felszabadítására vagy egyéb tisztítási feladatok végrehajtására szolgál. Valójában ez A metódus pont az ellentéte a Java konstruktorának. Emlékszel, hogy a konstruktorokat objektumok létrehozására használják."

"Az Object osztálynak van egy finalize () metódusa, ami azt jelenti, hogy minden más osztálynak is van ( mivel az összes Java osztály az Object osztályból származik ). Egyszerűen implementálhatod a saját finalize () metódusodat az osztályodban."

"Íme egy példa:"

Példa:
class Cat
{
    String name;

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

    protected void finalize() throws Throwable
    {
        System.out.println(name + " has been destroyed");
    }
}

– Ennek van értelme, Ellie.

"De tisztában kell lennie azzal, hogy a Java virtuális gép dönti el, hogy meghívja-e ezt a metódust . Leggyakrabban a metóduson belül létrehozott objektumok, amelyeket szemétnek nyilvánítottak, amikor a metódus befejeződik, azonnal megsemmisülnek, anélkül, hogy fel kellene hívni a véglegesítést ( ). Ez a módszer sokkal több mint a biztonsági mentés, mint egy megbízható megoldás. A legjobb megoldás az összes rendszererőforrás felszabadítása (más objektumokra való hivatkozás nullra állításával), amíg az objektum még életben van. A módszer előnyeiről és árnyalatairól később többet fogok elmondani. Ezen a ponton , csak két dolgot kell megértened: van ilyen módszer, és ( meglepetés! ) nem mindig hívják."