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.