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.