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结果不确定的原因。如果是这样并不是很合里啊。 奇怪的read() Cookie疑问 一个关于数据连接的问题! 关于类间的调用[求助][急]!! 如何读取XML中节点的属性值,高手帮忙,谢谢大家了,工作中,急用啊,多谢了。 如何在java中实现文件共享的操作 java学习网站 怎么做流程图?今天就要做出来,急急 急!! 如何将自己开发的类打包(生成.jar文件) 什么是造型 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结果不确定的原因。如果是这样并不是很合里啊。