Страницы

Поиск по вопросам

среда, 9 января 2019 г.

Оператор try c ресурсами

Зачем нужен усовершенствованный и появившийся в JDK 7 оператор try-c-ресурсами?
try (спецификация_ресурса) { //использование ресурса {


Ответ

Оператор try-c-ресурсами реализует принцип автоматического управления ресурсами, целью которого является избежать, например, утечек памяти, в случаях когда ресурс по каким-то причинам не освобождается, если он больше не нужен.
Неудачный исход закрытия файла может привести к "утечкам памяти", поскольку неиспользуемые ресурсы оперативной памяти останутся выделенными.(стр 365)
try ( FileInputStream res = new FileInputStream(args[O])) {
//использование ресурса
}
Оператор try-c-ресурсами позволяет объявить и проинициализировать ресурс (в круглых скобках после оператора try), создав переменной ресурса локальный контекст в блоке try. По завершении этого блока переменная удаляется, а значит и ресурс автоматически закрывается.
Отсюда отпадает необходимость явного закрытия ресурса методом close() в блоке оператора finally

Комментариев нет:

Отправить комментарий