Sobes.tech
Junior

Ce sunt cuvintele cheie final și finalize în Java și în ce constau diferențele dintre ele?

sobes.tech AI

Răspuns de la AI

În Java, final și finalize sunt concepte diferite cu scopuri diferite:

  • final este un cuvânt cheie folosit pentru a declara:
    • Constante (variabile care nu pot fi modificate după inițializare).
    • Metode care nu pot fi suprascrise în subclase.
    • Clase care nu pot fi moștenite.

Exemplu:

final int x = 10; // x nu poate fi schimbat
final class MyClass {} // clasa nu poate fi moștenită
final void myMethod() {} // metoda nu poate fi suprascrisă
  • finalize() este o metodă a clasei Object, care este apelată de colectorul de gunoi înainte de a elimina obiectul din memorie. Este destinat să elibereze resurse, dar utilizarea sa nu este recomandată, deoarece apelul nu este garantat și poate duce la comportamente imprevizibile.

Exemplu:

@Override
protected void finalize() throws Throwable {
    // eliberează resursele
    super.finalize();
}

Diferențe:

  • final este un cuvânt cheie pentru controlul modificării codului.
  • finalize este o metodă pentru curățare înainte de colectarea gunoiului, învechită și nerecomandată.