Junior
Cosa sono le parole chiave final e finalize in Java, e quali sono le loro differenze?
sobes.tech AI
Risposta dell'AI
In Java, final e finalize sono concetti diversi con scopi differenti:
finalè una parola chiave usata per dichiarare:- Costanti (variabili che non possono essere modificate dopo l'inizializzazione).
- Metodi che non possono essere sovrascritti nelle sottoclassi.
- Classi che non possono essere ereditate.
Esempio:
final int x = 10; // x non può essere modificato
final class MyClass {} // classe non ereditabile
final void myMethod() {} // metodo non sovrascrivibile
finalize()è un metodo della classeObject, chiamato dal garbage collector prima di rimuovere l'oggetto dalla memoria. È destinato a liberare risorse, ma il suo uso non è raccomandato, poiché la chiamata non è garantita e può portare a comportamenti imprevedibili.
Esempio:
@Override
protected void finalize() throws Throwable {
// liberare risorse
super.finalize();
}
Differenze:
finalè una parola chiave per controllare la modifica del codice.finalizeè un metodo per la pulizia prima della raccolta dei rifiuti, obsoleto e non raccomandato.