Sobes.tech
Junior — Middle

Можете ли објаснити шта се дешава када се позове метода finalize у Јави и у којим случајевима се она позива?

sobes.tech АИ

Одговор од АИ

U Java-i, metoda finalize() poziva se od strane sakupljača smeća pre nego što objekat bude uklonjen iz memorije. Njena zadatak je da oslobodi resurse koje JVM ne upravlja, kao što su zatvaranje fajlova ili mrežnih veza.

Međutim, poziv finalize() nije garantovan i može se desiti sa zakašnjenjem ili uopšte ne, stoga se ne preporučuje da se na njega oslanjate za oslobađanje resursa.

Primer upotrebe:

@Override
protected void finalize() throws Throwable {
    try {
        // Oslobađanje resursa
    } finally {
        super.finalize();
    }
}

U savremenim verzijama Jave, preporučuje se korišćenje konstrukcija try-with-resources ili eksplicitno zatvaranje resursa, umesto oslanjanja na finalize().