JavaRush /Курсы /Java Multithreading /Задачи на освобождение занятых ресурсов

Задачи на освобождение занятых ресурсов

Java Multithreading
1 уровень , 10 лекция
Открыта

— Привет, Амиго!

Я думал, ты уже разобрался с finalize.

— Я тоже так думал. А теперь еще и этот try-with-resources.

Охренеть. Я так Java никогда не выучу. Только кажется, что все понял, а тут на тебе!

— Не волнуйся ты так – маслопровод лопнет, лучше вот порешай задачи пока:

6
Задача
Java Multithreading, 1 уровень, 10 лекция
Недоступна
Рефакторинг методов
Отрефакторите метод writeZipEntriesToFile в соответствии с java7 try-with-resources.
12
Задача
Java Multithreading, 1 уровень, 10 лекция
Недоступна
Освобождаем ресурсы
Реализуй метод finalize, предварительно обдумав, что именно в нем должно быть. Проведи рефакторинг метода getUsers в соответствии с java7 try-with-resources.
6
Задача
Java Multithreading, 1 уровень, 10 лекция
Недоступна
AutoCloseable и try-with-resources
В классе FakeConnection реализуй интерфейс AutoCloseable, чтобы объекты этого типа можно было использовать в try-with-resources. Метод close() должен выводить на экран фразу "Closing database connection..." В блоке try последовательно вызови методы usefulOperation() и unsupportedOperation(). Вывод
Комментарии (114)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3585174 Уровень 33
23 сентября 2025
Like
Victor Уровень 36
19 августа 2025
Вчера решил последнюю задачу, сегодня пытаюсь вспомнить о чём эти задачи, не могу даже сформулировать тему. Типа если что-то открываешь через try с условием, то это что-то должно быть AutoCloseble. Ну да интерфейс хороший, если не надо переопределять close(). А если надо, то легче закрывать вручную.
Никита QA Уровень 34
23 мая 2025
Немного информации про Проблемы с finalize() от DeepSeek: 1) Надежность Метод finalize() вызывается сборщиком мусора (GC), но когда именно — неизвестно (может вообще не вызваться, если программа завершится раньше). Например, соединение (connection) может висеть открытым часами, пока GC не решит запуститься. 2) Производительность Объекты с переопределённым finalize() обрабатываются GC медленнее, так как они попадают в отдельную очередь финализации. 3) Опасность утечек Если в finalize() произойдёт исключение, оно проигнорируется, а ресурс не закроется. 4) Устаревание Начиная с Java 9, finalize() помечен как deprecated
No Name Уровень 36
20 ноября 2024
+ задачи в копилке
VAKHANDER Уровень 32
30 октября 2024
30.10.2024
Private Joker Уровень 36
14 июня 2024
Третья задача интересная!
Максим Li Уровень 40
18 мая 2024
18.05.2024
3 марта 2024
Для тех, кто ничего не понял: метод finalize программисты не вызывают, а переопределяют. Его выполняет сборщик мусора перед удалением объекта. Но этот метод ненадежный и неэффективный, поэтому ему придумали альтернативу - метод close интерфейса AutoCloseable. Чтобы вместо finalize был выполнен close, объект нужно создать в try-with-ressources.
Евгений Уровень 8
19 июня 2024
исключительно не понятно, зачем в задаче необходимо реализовать finalize, если есть try-with-resources, который наверняка закроет все, что определено в try? Первый раз подумалось, что надо вынести из под try

connection
, но нет
Ислам Уровень 33
21 февраля 2024
весьма полезно
20 февраля 2024
20.02.2024 я прорешал далеко не первую сотню задач, кажется это уже вошло в привычку. Я не могу себе представить и дня без решенной задачи.
Andrei Karavai Уровень 30
1 апреля 2024
задачеман или задачеголик???? я порешал уже не одню сотню задач, но всю последнюю неделю не мог себя заставить решить 3 задачи на clone😀 мне кажется задачи стали мне по вызыванию усталости напоминать мою прошлую работу, а я ещё даже резюме на программера не начал делать😂