当对象失效了,它就会从内存中移出,或者说是删除。和对象创建时调用构造函数类似,Java在对象删除时提供了调用析构函数的能力。构造函数的名称使用类的名称,与此不同的是,析构函数的名称是 finalize()。 finalize()方法提供一个放置执行清除对象的代码的位置,如下定义:
void finalize() {
// 收尾工作
}
有必要指出的是,在 Java 中当对象失效时,不能保证 finalize()方法会被调用。这是因为 Java在系统垃圾收集(garbage collection)部分删除掉了对象,这会在不定的时间间隔里发生。由于在Java 执行一次垃圾收集前,对象并不会被真正地删除掉,所以对象的 finalize()方法在此之前也不会被调用。知道这一点,就可以肯定地说不应该依靠 finalize()方法来完成任何和时间关键(time
critical)相关的事情。通常你很少需要在 finalize()方法中放置代码,因为 Java 在系统运行期间对 失效对象做了很好的清理工作。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>