Sobes.tech
Junior

Co jsou klíčová slova final a finalize v Java, a v čem se liší?

sobes.tech AI

Odpověď od AI

V jazyce Java jsou final a finalize odlišné pojmy s různými účely:

  • final je klíčové slovo používané k deklaraci:
    • Konstant (proměnných, které nelze změnit po inicializaci).
    • Metod, které nelze přepsat v podtřídách.
    • Tříd, které nelze dědit.

Příklad:

final int x = 10; // x nelze změnit
final class MyClass {} // třída nelze dědit
final void myMethod() {} // metoda nelze přepsat
  • finalize() je metoda třídy Object, která je volána garbage collectorem před odstraněním objektu z paměti. Je určena k uvolnění zdrojů, ale její použití se nedoporučuje, protože volání není garantováno a může vést k nepředvídatelnému chování.

Příklad:

@Override
protected void finalize() throws Throwable {
    // uvolnění zdrojů
    super.finalize();
}

Rozdíly:

  • final je klíčové slovo pro kontrolu modifikace kódu.
  • finalize je metoda pro čištění před sběrem odpadků, je zastaralá a nedoporučuje se její použití.