Sobes.tech
Junior — Middle

Ce se întâmplă atunci când se apelează metoda finalize pe un obiect în Java și ce resurse poate elibera?

sobes.tech AI

Răspuns de la AI

În Java, metoda finalize() este apelată de colectorul de gunoi înainte ca un obiect să fie eliminat din memorie. Această metodă este destinată să elibereze resursele necontrolate care nu sunt curățate automat, de exemplu:

  • Închiderea descriptorilor de fișiere
  • Eliberarea conexiunilor de rețea
  • Curățarea resurselor native

Cu toate acestea, utilizarea finalize() nu este recomandată, deoarece apelul său nu este garantat și poate duce la întârzieri în eliberarea resurselor. Abordările moderne sugerează utilizarea try-with-resources sau eliberarea explicită a resurselor.

Exemplu:

@Override
protected void finalize() throws Throwable {
    try {
        // eliberarea resurselor
    } finally {
        super.finalize();
    }
}