Sobes.tech
Junior

Šta su ključne reči final i finalize u Javi i u čemu se razlikuju?

sobes.tech АИ

Одговор од АИ

U Javi, final i finalize su različiti pojmovi sa različitim namerama:

  • final je ključna reč koja se koristi za deklarisanje:
    • Konstanti (promenljive koje se ne mogu menjati nakon inicijalizacije).
    • Metoda koje se ne mogu prepisivati u podklasama.
    • Klasa koje se ne mogu naslediti.

Primer:

final int x = 10; // x se ne može menjati
final class MyClass {} // klasa se ne može naslediti
final void myMethod() {} // metoda se ne može prepisati
  • finalize() je metoda klase Object, koja se poziva od strane sakupljača smeća pre uklanjanja objekta iz memorije. Namenjena je oslobađanju resursa, ali se ne preporučuje njena upotreba, jer njen poziv nije garantovan i može dovesti do nepredvidivog ponašanja.

Primer:

@Override
protected void finalize() throws Throwable {
    // oslobađanje resursa
    super.finalize();
}

Razlike:

  • final je ključna reč za kontrolu modifikacije koda.
  • finalize je metoda za čišćenje pre sakupljanja smeća, zastarela i ne preporučuje se za upotrebu.