Я перечитал множество вопросов о новичке по Java на finalize()
и считаю, что это немного удивляет, что никто не дал понять, что finalize () - ненадежный способ очистки ресурсов. Я видел, как кто-то комментирует, что он использует его для очистки соединений, что действительно страшно, поскольку единственный способ приблизиться к гарантии закрытия соединения - это реализовать try (catch) в конце концов.
Я не учился в CS, но я профессионально программирую на Java уже почти десять лет, и я никогда не видел, чтобы кто-нибудь реализовал finalize()
в производственной системе. Это по-прежнему не означает, что у него нет использования, или что люди, с которыми я работал, делали это правильно.
Итак, мой вопрос: какие существуют варианты использования для реализации finalize()
, которые не могут быть обработаны более надежно с помощью другого процесса или синтаксиса в языке?
Пожалуйста, предоставьте конкретные сценарии или ваш опыт, просто повторения учебника по Java или окончательного использования по назначению недостаточно, поскольку цель этого вопроса не в этом.