"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:"
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."
GO TO FULL VERSION