首页 > 软件操作教程 > 编程开发 > Java
题目内容

当对象失效了,它就会从内存中移出,或者说是删除。和对象创建时调用构造函数类似,Java在对象删除时提供了调用析构函数的能力。构造函数的名称使用类的名称,与此不同的是,析构函数的名称是 finalize()。 finalize()方法提供一个放置执行清除对象的代码的位置,如下定义: void finalize() { // 收尾工作 } 有必要指出的是,在 Java 中当对象失效时,不能保证 finalize()方法会被调用。这是因为 Java在系统垃圾收集(garbage collectio

题目答案

当对象失效了,它就会从内存中移出,或者说是删除。和对象创建时调用构造函数类似,Java在对象删除时提供了调用析构函数的能力。构造函数的名称使用类的名称,与此不同的是,析构函数的名称是 finalize()。 finalize()方法提供一个放置执行清除对象的代码的位置,如下定义:

void finalize() {

 // 收尾工作

有必要指出的是,在 Java 中当对象失效时,不能保证 finalize()方法会被调用。这是因为 Java在系统垃圾收集(garbage collection)部分删除掉了对象,这会在不定的时间间隔里发生。由于在Java 执行一次垃圾收集前,对象并不会被真正地删除掉,所以对象的 finalize()方法在此之前也不会被调用。知道这一点,就可以肯定地说不应该依靠 finalize()方法来完成任何和时间关键(time 

critical)相关的事情。通常你很少需要在 finalize()方法中放置代码,因为 Java 在系统运行期间对 失效对象做了很好的清理工作。

网友评论(共0条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点!

最新评论

点击加载更多评论>>

软件操作 新人注册送三重礼

已有 22658 名学员学习以下课程通过考试

相关视频试题

最需教育客户端 软件问题一手掌握

去 App Store 免费下载 iOS 客户端