Junior — Middle
Kas notiek, kad tiek izsaukta finalize metode Java objektā un kādus resursus tas var atbrīvot?
sobes.tech AI
Atbilde no AI
Java valodā finalize() metode tiek izsaukts atkritumu savācējs pirms objekta dzēšanas no atmiņas. Šī metode ir paredzēta nevadāmu resursu atbrīvošanai, kas netiek automātiski tīrīti, piemēram:
- Failu deskriptoru aizvēršana
- Tīkla savienojumu atbrīvošana
- Nativu resursu tīrīšana
Tomēr finalize() lietošana nav ieteicama, jo tā izsaukšana nav garantēta un var radīt kavēšanos resursu atbrīvošanā. Mūsdienu pieejas iesaka izmantot try-with-resources vai skaidru resursu atbrīvošanu.
Piemērs:
@Override
protected void finalize() throws Throwable {
try {
// resursu atbrīvošana
} finally {
super.finalize();
}
}