首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于finalize()方法自动调用的测试.该如何处理

2012-01-01 
关于finalize()方法自动调用的测试.Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之

关于finalize()方法自动调用的测试.
Java   技术允许使用   finalize()   方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在   Object   类中定义的,因此所有的类都继承了它。子类覆盖   finalize()   方法以整理系统资源或者执行其他清理工作。finalize()   方法是在垃圾收集器删除对象之前对这个对象调用的.

现在我想测试下,什么时候被自动调用,谁能提供测试代码.
比如重写OBJECT的finalize(),在里边打出一条信息.谢谢.

[解决办法]
finalize不保证一定会调用。

只有内存不足,必须发生GC时才会调用。如果在System.exit()之前没有发生GC,finalize就不会执行。
[解决办法]
给你一段代码:

public class Foo {
public static void main(String[] args) {
new Foo();
System.gc();
}

protected void finalize() throws Throwable {
System.out.println( "finalize... ");
}
}

[解决办法]
调用System.gc()

就可以
[解决办法]
把你的解决方法说来与大家分享一下噻
[解决办法]
up 一哈
[解决办法]
学习一下

热点排行