Sobes.tech
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();
    }
}