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:
finaleste 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 claseiObject, 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:
finaleste un cuvânt cheie pentru controlul modificării codului.finalizeeste o metodă pentru curățare înainte de colectarea gunoiului, învechită și nerecomandată.