java的Finalize的方法 gc finalize 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议不要去研究Finalize这个方法,没啥意义。直接丢弃这个方法吧,当初设计这个方法的人也许一个c++程序员,然后一拍脑袋就想到了这个一个方法。我做java十多年,从来就没用过这个方法,而且在我的思维里面也从来就没有认为java还有这个方法。潜意识里面都已经抛弃这个方法了。 猜想只是对于 weak reference , sort reference 之类的略有影响吧,正常的我们不应该依赖这个方法,最好是不要使用它。具体 finalize () 做了什么也不知道。至于你提到的先 finalize 再扫描一次才回收,从逻辑上理解是正常的,因为这个对象可能引用了其它对象,finalize 后立即回收时可能它所引用的对象的关系链(很多互相引用)不一致,还是需要重新分析一次,不如直接把回收的过程单独提出来放在另一步处理。Think in Java 第一版介绍了触发 GC 的步骤:System.gc();Runtime.getRuntime().runFinalize();连作者都奇怪为什么当初 GC 是这么设置,他觉得是两个中的一个就是好了:System.gc();或:Runtime.getRuntime().runFinalize();System.gc(); 第一遍垃圾回收,把有finalize的对象放到单独的线程去执行。第二遍垃圾回收,清除调所有的对象,某些对象的finalize的时间比较长,但是也被清掉了,这是不是就是导致finalize结果不确定的原因。如果是这样并不是很合里啊。 第一遍垃圾回收,把有finalize的对象放到单独的线程去执行。第二遍垃圾回收,清除调所有的对象,某些对象的finalize的时间比较长,但是也被清掉了,这是不是就是导致finalize结果不确定的原因。如果是这样并不是很合里啊。 Swing嵌入免安装的软件 菜鸟请进 如何最快的速度获取这个目录下的文件信息 请教容器的东西 字符窜中提取数字的方法 How to make ResultSet move previous? 我的TOMCAT为什么起不来呢? jdk1.3,1.4:中文字体太难看 请教各位有关split问题 for循环中代码效率求解 java线程的静态变量共享问题 这个输出结果是什么?
具体 finalize () 做了什么也不知道。至于你提到的先 finalize 再扫描一次才回收,从逻辑上理解是正常的,因为这个对象可能引用了其它对象,finalize 后立即回收时可能它所引用的对象的关系链(很多互相引用)不一致,还是需要重新分析一次,不如直接把回收的过程单独提出来放在另一步处理。Think in Java 第一版介绍了触发 GC 的步骤:System.gc();
Runtime.getRuntime().runFinalize();连作者都奇怪为什么当初 GC 是这么设置,他觉得是两个中的一个就是好了:System.gc();或:Runtime.getRuntime().runFinalize();
System.gc();
第二遍垃圾回收,清除调所有的对象,某些对象的finalize的时间比较长,但是也被清掉了,这是不是就是导致finalize结果不确定的原因。如果是这样并不是很合里啊。
第二遍垃圾回收,清除调所有的对象,某些对象的finalize的时间比较长,但是也被清掉了,这是不是就是导致finalize结果不确定的原因。如果是这样并不是很合里啊。