Junior
Wat zijn de sleutelwoorden final en finalize in Java, en wat zijn hun verschillen?
sobes.tech AI
Antwoord van AI
In Java zijn final en finalize verschillende concepten met verschillende doeleinden:
finalis een sleutelwoord dat wordt gebruikt om te declareren:- Constanten (variabelen die niet kunnen worden gewijzigd na initialisatie).
- Methoden die niet kunnen worden overschreven in subklassen.
- Klassen die niet kunnen worden geërfd.
Voorbeeld:
final int x = 10; // x kan niet worden gewijzigd
final class MyClass {} // klasse kan niet worden geërfd
final void myMethod() {} // methode kan niet worden overschreven
finalize()is een methode van de klasseObject, die wordt aangeroepen door de garbage collector voordat het object uit het geheugen wordt verwijderd. Het is bedoeld om bronnen vrij te maken, maar het gebruik wordt niet aanbevolen omdat de aanroep niet wordt gegarandeerd en kan leiden tot onvoorspelbaar gedrag.
Voorbeeld:
@Override
protected void finalize() throws Throwable {
// bronnen vrijmaken
super.finalize();
}
Verschillen:
finalis een sleutelwoord om de codewijziging te controleren.finalizeis een methode voor opruimen vóór het verzamelen van afval, verouderd en niet aanbevolen.