Junior — Middle
Jak najczęściej realizuje się zakończenie obiektów w języku Java?
sobes.tech AI
Odpowiedź od AI
W języku Java do zarządzania kończeniem pracy obiektów zazwyczaj używa się metody finalize(), która jest wywoływana przez garbage collector przed usunięciem obiektu. Jednak od Java 9 ta metoda jest uważana za przestarzałą i niezalecana do użycia ze względu na nieprzewidywalność momentu wywołania i problemy z wydajnością.
Nowoczesne podejście polega na użyciu interfejsu AutoCloseable i konstrukcji try-with-resources do jawnego zwalniania zasobów:
class Resource implements AutoCloseable {
public void close() {
// zwalnianie zasobów
System.out.println("Zasób zamknięty");
}
}
try (Resource res = new Resource()) {
// praca z zasobem
}
// tutaj automatycznie wywoływane jest res.close()
W ten sposób kończenie pracy obiektów, zwłaszcza tych zarządzających zasobami, odbywa się przez jawne zamknięcie, a nie przez finalize().