Java 9+ finalize() deprecated?
И тем более, его рекомендуют не использовать вообще.
В чем прикол данной задачи?
Volodymyr Shved
18 уровень
Deprecated?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
26 ноября 2019, 19:41
То что выходят новые jdk это конечно хорошо.
Но в мире сотни тысяч джава программ, маленьких и очень крупных энтерпрайз-приложений. Которые содержат тысячи классов. Как думаешь, что с ними происходит при выходе новой jdk?
Они не аннигилируются, они не переходят в Х-измерение, они остаются быть написанными много лет назад, это называется легаси.
Да, их постепенно стараются переводить, сейчас стандартная jdk для большинства проектов на рынке, наверное 8-ая, кто может, активно переходит на 10-11, но этот процесс требует времени и ресурсов.
Но остается очень приличное количество проектов на 6-7 джаве по разным причинам, это затратность перевода, это конфликты (например использование сопутствующих технологий, которые составляют важную часть проекта, и при этом не имеющих совместимости с более новыми версиями джава, что делает переход на новые версии очень сложней задачей), особенности архитектуры и тд.
Поэтому то что выходят новые jdk это прикольно. Но представь что ты студент медвуза. Ты изучаешь как читать рентген-снимки, УЗИ и тд. А ты профессору говоришь "что вы за старье заставляете меня учить, японцы придумали мегарезонирующий суперлуч, и рентген опасный и не рекомендуется к использованию".
Оно то так, но работать ты будешь что в обычной больнице, что в частной клинике все с теми же рентген-снимками и УЗИ.
Так и депрекейтед методы. Да, они депрекейтед, но они депрекейтед для 9-й джавы. Откуда ты знаешь на каких проектах и каком коде ты будешь работать?
Ты как профессионал должен знать эти методы, понимать почему они депрекейтед, знать отчего они ограничены в использовании, как они работают и тд.
А чтобы это знать, нужно делать упражнения, которые в идеале должны побудить тебя погуглить и почитать, запомнить эту информацию. При этом никто же тебя не заставляет эти методы использовать вне задачи нужно отличать учебные упражнения и реальные проекты.
+3
Wladyslaw Java Developer Master
26 ноября 2019, 19:33
У Блоха было описано пару случаев возможного применения этой штуки. Что-то типа логирования случаев если твой объект занимает какие-то системные ресурсы, а клиентский код их не освобождает, не вызывает метод close() например или что-то в таком духе. Но это усложняет работу сборщика мусора.
Применяется ли что-то подобное на практике? Я не знаю.
0
Boriss
26 ноября 2019, 19:24
Когда я решал подобную задачку пару лет назад, он ещё не был помечен как устаревший. А теперь вон оно как....
0
Александр Толкачёв
18 декабря 2018, 09:21
Метод действительно бесполезен, и даже опасен. Его используют только в крайних целях, или при выполнении какой нибудь конкретной задачи, где нужен этот метод
+2
Артем Divertitto Senior Android-разработчи в United Tech Master
18 декабря 2018, 09:16
Я так понимаю, это в ознакомительных целях.
+3