Junior — Middle
Šta se dešava kada se pozove metoda finalize na objektu u Javi i koje resurse može osloboditi?
sobes.tech АИ
Одговор од АИ
U Javi, metoda finalize() poziva se od strane sakupljača smeća pre nego što objekat bude uklonjen iz memorije. Ova metoda je namenjena za oslobađanje neuređenih resursa koji se ne čiste automatski, na primer:
- Zatvaranje deskriptora fajlova
- Oslobađanje mrežnih veza
- Čišćenje nativnih resursa
Međutim, korišćenje finalize() se ne preporučuje, jer njen poziv nije garantovan i može dovesti do kašnjenja u oslobađanju resursa. Moderni pristupi sugerišu korišćenje try-with-resources ili eksplicitno oslobađanje resursa.
Primer:
@Override
protected void finalize() throws Throwable {
try {
// oslobađanje resursa
} finally {
super.finalize();
}
}