Sobes.tech
Junior — Middle

Millistes olukordades on soovitatav kasutada meetodit finalize Java-s?

sobes.tech AI

Vastus AI-lt

Java finalize() meetod on mõeldud puhastustööde tegemiseks enne, kui objekt eemaldatakse prügikoristaja poolt. Kuid selle kasutamine ei ole soovitatav, sest:

  • finalize()-i kutsumine ei ole garanteeritud ja võib olla edasi lükatud või üldse mitte toimuda.
  • See võib põhjustada ettearvamatut käitumist ja jõudluse probleeme.

Soovitatav on kasutada finalize() ainult äärmuslikel juhtudel, kui ressursse ei ole võimalik muul viisil vabastada, näiteks töötades natiivsete ressurssidega. Selle asemel on parem kasutada liidest AutoCloseable ja try-with-resources plokke ressursside selgeks haldamiseks.

Näide try-with-resources kasutamisest:

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    // töö failiga
} catch (IOException e) {
    e.printStackTrace();
}
// ressurss suletakse automaatselt