Junior — Middle
66
Каким образом реализована автоматическая закрываемость ресурсов с помощью конструкции try-with-resources?
Answer from AI
sobes.tech AI
Конструкция try-with-resources в Java позволяет автоматически закрывать ресурсы, реализующие интерфейс AutoCloseable. При использовании этой конструкции ресурс объявляется в скобках после ключевого слова try и автоматически закрывается после выхода из блока, даже если произошло исключение.
Реализация основана на том, что компилятор генерирует код, который:
- Создаёт ресурс и связывает его с переменной.
- Выполняет тело блока try.
- В блоке finally вызывает метод
close()у ресурса.
Пример:
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line = br.readLine();
System.out.println(line);
} // br.close() вызывается автоматически здесь
Таким образом, разработчик освобождён от необходимости явно писать блок finally для закрытия ресурсов, что уменьшает вероятность утечек.