Sobes.tech
Junior

Čo sú kľúčové slová final a finalize v Jave a v čom sa líšia?

sobes.tech AI

Odpoveď od AI

V Jave sú final a finalize odlišné pojmy s rôznymi účelmi:

  • final je kľúčové slovo, ktoré sa používa na deklaráciu:
    • Konštánt (premenných, ktoré nemožno zmeniť po inicializácii).
    • Metód, ktoré nemožno prepísať v podtriedach.
    • Tried, ktoré nemožno dediť.

Príklad:

final int x = 10; // x nemožno zmeniť
final class MyClass {} // trieda nemožno dediť
final void myMethod() {} // metódu nemožno prepísať
  • finalize() je metóda triedy Object, ktorá sa volá od garbage collectora pred odstránením objektu z pamäte. Je určená na uvoľnenie zdrojov, ale jej používanie sa neodporúča, pretože jej volanie nie je garantované a môže viesť k nepredvídateľnému správaniu.

Príklad:

@Override
protected void finalize() throws Throwable {
    // uvoľnenie zdrojov
    super.finalize();
}

Rozdiely:

  • final je kľúčové slovo na kontrolu modifikácie kódu.
  • finalize je metóda na čistenie pred zberom odpadu, zastaraná a neodporúča sa jej používanie.