关于finalize()调用 测试结果并未调用,那么如果我想在系统退出前调用某个对象的finalize方法,应该怎么去做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把finalize方法调用写在System.exit(),前面 :)当然是写在System.exit()前面,我在对象的finalize方法中写一个文件,其他几个测试都写了,但唯独系统退出之前没有调到 你将一个对象创建,然后指向null,是肯定会调用finalize()方法的,但有很大可能是不会立即调用的。这是由于JVM的垃圾收集机制决定的,为了加快程序执行效率,JVM只在内存不够时,一起执行这些积累下来的垃圾收集。如果你创建了100个实例,每次创建都用同一个对象,很可能前99个垃圾收集都没有完成。如果你要系统立即执行finalize()方法,可以调用System.runFinalization()方法。 System.runFinalization()将尽量地调用被回收对象的finalize方法但finalize()只会被调用一次,(上次有人问相关问题,上次我的猜想错了,一个对象只会被调用一次finalize()的) 通过多次测试,我在将对象指向null后,马上使用System.exit()退出,JVM不会执行该对象的finalize()方法,因此要回收特定资源只有单独写特定的Method去Call了!谢谢各位的关注! foreach语法不适合于基本数据类型吗? JAVA线程问题!! MyEclipse中遇到的奇怪问题 绘图问题 高手进................... 一个应该挺容易的问题 在数据库中插入日期问题 关于JDK Java中,Inner class可不可以使用final修饰符? 关于jsp中的table框中的数据怎么选中一行进行修改的问题? 在jbuild中如何使用自己的jar文件 [发布]Rational XDE 2003发布了~~Java版本支持WSAD 5以及eclipse 2.0.1,散200分(多了我也没有用)
但finalize()只会被调用一次,(上次有人问相关问题,上次我的猜想错了,一个对象只会被调用一次finalize()的)
谢谢各位的关注!