Junior
Mi a különbség a final és a finalize kulcsszavak között Java-ban?
sobes.tech MI
Válasz az MI-től
Java-ban a final és a finalize külön fogalmak, különböző célokra:
- A
finalegy kulcsszó, amit a következők deklarálására használnak:- Állandók (változók, amiket nem lehet módosítani a inicializálás után).
- Olyan metódusok, amiket nem lehet felülírni az alosztályokban.
- Olyan osztályok, amiket nem lehet örökölni.
Példa:
final int x = 10; // x nem módosítható
final class MyClass {} // osztály nem örökölhető
final void myMethod() {} // metódus nem írható felül
- A
finalize()aObjectosztály egyik metódusa, amit a szemétgyűjtő hív meg, mielőtt az objektumot eltávolítja a memóriából. Célja az erőforrások felszabadítása, de használata nem ajánlott, mivel a hívás nem garantált, és kiszámíthatatlan viselkedést eredményezhet.
Példa:
@Override
protected void finalize() throws Throwable {
// erőforrások felszabadítása
super.finalize();
}
Különbségek:
- A
finalegy kulcsszó a kód módosításának ellenőrzésére. - A
finalizeegy módszer a szemétgyűjtés előtti tisztításra, elavult és nem ajánlott használni.