好象在CSDN上,有人说这两者功能一模一样的,既然一样,,在同一个类里,何必定义两个方法。
解决方案 »
- java Web系统中ant打包的使用
- update
- java Image读取。。。
- 一个java程序它的里边有一个new 方法,new 的是另一个java类里的方法,这样的程序如何运行??
- JXTA配置问题 送高分 请高手指导。。谢谢!!!!
- java程序调用unix外部命令,怎样才能实现后台执行?
- where can i get an open-source Internet Explorer written in Java?
- 关于simpledateFormat 的用法
- 最后60分了,问大家问题。
- 我想学java,请教大家几个问题:)
- 多线程运行结果为什么会这样,请高手帮忙
- 为什么交换后数值没有变化
public static void runFinalization()运行处于挂起终止状态的所有对象的终止方法。
调用该方法说明 Java 虚拟机做了一些努力运行已被丢弃对象的 finalize 方法,但是这些对象的 finalize 方法至今尚未运行。当控制权从方法调用中返回时,Java 虚拟机已经尽最大努力去完成所有未执行的终止方法。 调用 System.runFinalization() 实际上等效于调用: Runtime.getRuntime().runFinalization()gc
public static void gc()运行垃圾回收器。
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。 调用 System.gc() 实际上等效于调用: Runtime.getRuntime().gc()
这两个真的一样么?
finalize 方法是所有类继承了Ojbect的。所以应该比gc()还要上层的关系,
要按顺序调用2个方法:
gc();
runFinalize(); 它会立即清理内存,不过不知道不同的 JVM 是不是有不同。我在 Eclipse 插件中用过,确实立即执行。只写一个 gc() 它总是置若罔闻。