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 для объекта, представляющего соединение ввода-вывода, может выполнять явные транзакции ввода-вывода, чтобы разорвать соединение до окончательного отмены объекта.

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

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

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

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

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

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

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

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