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