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在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的终结方法可能会执行显式 I/O 事务,以在永久丢弃对象之前中断连接。

finalizeObject的方法不执行任何特殊操作;它只会正常返回。 可能 Object 重写此定义的子类。

Java 编程语言不保证哪个线程将调用 finalize 任何给定对象的方法。 但是,可以保证调用终结的线程在调用终结时不会保留任何用户可见同步锁。 如果最终方法引发未捕获的异常,则会忽略该异常并终止该对象。

finalize为对象调用该方法后,在 Java 虚拟机再次确定不再有任何方法可供尚未终止的任何线程访问之前,不会再执行任何进一步操作,包括准备最终完成的其他对象或类可能执行的操作。 此时,对象可能会被丢弃。

对于 finalize 任何给定对象,Java 虚拟机永远不会多次调用该方法。

此方法引发 finalize 的任何异常都会导致此对象的最终化停止,但将被忽略。

适用于 . 的 java.lang.Object.finalize()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于