Junior — Middle
Как най-често се реализира завършването на обекти в Java?
sobes.tech AI
Отговор от AI
В Java обикновено за управление на завършването на обекти се използва методът finalize(), който се извиква от събирача на отпадъци преди изтриването на обекта. Въпреки това, от Java 9 нататък, този метод се счита за остарял и не се препоръчва за използване поради непредсказуемостта на времето на извикване и проблеми с производителността.
Модерният подход е използването на интерфейса AutoCloseable и конструкцията try-with-resources за явно освобождаване на ресурсите:
class Resource implements AutoCloseable {
public void close() {
// освобождаване на ресурси
System.out.println("Ресурсът е затворен");
}
}
try (Resource res = new Resource()) {
// работа с ресурса
}
// тук автоматично се извиква res.close()
По този начин, завършването на работата с обекти, особено тези, които управляват ресурси, се реализира чрез явно затваряне, а не чрез finalize().