Junior — Middle
Mida juhtub, kui Java objekti finalize meetodit kutsutakse ja milliseid ressursse see võib vabastada?
sobes.tech AI
Vastus AI-lt
Java-s, finalize() meetod kutsutakse prügikoristaja poolt enne objekti eemaldamist mälust. See meetod on mõeldud hallatavate ressursside vabastamiseks, mis ei puhastata automaatselt, näiteks:
- Faili kirjeldajate sulgemine
- Võrguühenduste vabastamine
- Põhiväliste ressursside puhastamine
Kuid finalize() kasutamine ei ole soovitatav, kuna selle kutsumine ei ole garanteeritud ja võib põhjustada ressursside vabastamise viivitusi. Kaasaegsed lähenemised soovitavad kasutada try-with-resources või ressursside selget vabastamist.
Näide:
@Override
protected void finalize() throws Throwable {
try {
// ressursside vabastamine
} finally {
super.finalize();
}
}