protected void finalize() throws Throwable {}
- каждый класс наследует метод
finalize()
из java.lang.Object- , метод вызывается сборщиком мусора, когда он не определяет больше ссылок на объект exist
- Метод finalize объекта не выполняет никаких действий, но может быть переопределен любым классом
- , как правило, он должен быть переопределен для очистки ресурсов, отличных от Java, т.е. закрытие файла
- , если переопределить
finalize()
, хорошая практика программирования - использовать инструкцию try-catch-finally и всегда вызыватьsuper.finalize()
. Это мера безопасности, обеспечивающая непреднамеренное пропущение закрытия ресурса, используемого объектами, вызывающими классprotected void finalize() throws Throwable { try { close(); // close open files } finally { super.finalize(); } }
- . Любое исключение, созданное
finalize()
во время сбора мусора, останавливает завершение, но в противном случае игнорируетсяfinalize()
никогда не запускается более одного раза на любом объекте, указанном по адресу: http://www.janeg.ca/scjp/ gc / finalize.html
Вы также можете проверить эту статью:
Это происходит из-за того, что хранилище apt еще не обновлено, поэтому обычная практика - чистить ваши хранилища apt и файлы tmp после создания образа, что, вероятно, и делает ваш базовый образ.
Чтобы это исправить, вы захотите запустить apt-get update
перед установкой git, рекомендуется объединить команду update и install одновременно, чтобы уничтожить кеш при обновлении, если строка установки изменится:
RUN apt-get update && apt-get install -y git
Использование -y
удобно для автоматического ответа «да» на все вопросы.