Object.JavaFinalize Метод

Определение

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

[Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")]
protected virtual void JavaFinalize ();
[<Android.Runtime.Register("finalize", "()V", "GetJavaFinalizeHandler")>]
abstract member JavaFinalize : unit -> unit
override this.JavaFinalize : unit -> unit
Атрибуты

Исключения

Комментарии

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. Подкласс переопределяет finalize метод для удаления системных ресурсов или выполнения другой очистки.

Общий контракт finalize заключается в том, что он вызывается, если и когда виртуальная машина Java™ определила, что больше нет никаких средств, с помощью которых этот объект можно получить доступ к любому потоку, который еще не умер, за исключением действия, предпринятого завершением некоторых других объектов или классов, готовых к завершению. Метод finalize может предпринять любое действие, в том числе сделать этот объект доступным снова для других потоков. Обычное назначение finalize, однако, заключается в выполнении действий очистки перед необратимым удалением объекта. Например, метод завершения для объекта, представляющего входное/выходное подключение, может выполнять явные транзакции ввода-вывода для разрыва соединения до окончательного удаления объекта.

finalize Метод класса Object не выполняет никаких специальных действий; он просто возвращается нормально. Подклассы Object могут переопределить это определение.

Язык программирования Java не гарантирует, какой поток вызовет finalize метод для любого заданного объекта. Однако гарантируется, что поток, вызывающий завершение, не будет содержать никаких видимых пользователем блокировок синхронизации при вызове завершения. Если неученное исключение создается методом завершения, исключение игнорируется и завершается завершение этого объекта.

finalize После вызова метода для объекта никакие дальнейшие действия не выполняются, пока виртуальная машина Java снова не определила, что этот объект больше не может получить доступ к любому потоку, который еще не умер, включая возможные действия других объектов или классов, готовых к завершению, В какой момент объект может быть удален.

Метод finalize никогда не вызывается более одного раза виртуальной машиной Java для любого заданного объекта.

Любое исключение, возникающее методом finalize , приводит к остановке завершения этого объекта, но в противном случае игнорируется.

Документация по Java для java.lang.Object.finalize().

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к