关于垃圾收集的问题 第一种正确,引用此object的方法如果没有return,必然是保持着对object的引用。引用计数是最早的垃圾算法,但它对于对象间有交叉引用的情况是很麻烦的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当一个对象没有活动线程可访问它时,它就符合垃圾收集的条件。 一个对象可以有不同的方式符合垃圾收集的条件: ·如果指向这个对象的引用变量设置为 null,那么只要没有其他引用指向它,这个对象就符合垃圾收集的条件。 ·如果指向这个对象的引用变量改为指向别的对象,那么只要没有其他引用指向它,这个对象就符合垃圾收集的条件。 ·在方法本地创建的对象当方法返回时就符合垃圾收集的条件,除非它被导出到方法以外(即它被返回或者作为异常抛出)。 ·彼此引用的对象,如果没有活动线程访问它们中的任意一个,那么它们就符合垃圾收集的条件。 援引自——scjp认证课程 那通知垃圾收集启动一般是用什么我见过几种把reference设为null,调用System.gc(),实现finalize呵呵,搞不清了 TO killme2008(我不会编程) :在Java中,永远不要试图去控制垃圾收集的调度。那不是你的事,你也无法去控制。:)即便你调用了System.gc()也不保证这点,呵呵。 TO killme2008(我不会编程) :那就丢弃对这个对象的引用就可以了。:) 呵呵:)那么设置为null会不会更快? TO killme2008(我不会编程) :呵呵,你认为呢?比如这么一个方法体:{ Object obj = new Object(); ... ... ... return;}退出方法体之后obj这个引用自然就被丢弃了。{ Object obj = new Object(); .... obj = null; // 哦,不用了! ... ...}退出方法体之前,你就丢弃了obj这个引用了。好像是快一点哦。:)但是,你能保证gc在什么时候把这个obj给回收掉?呵呵,好像不能吧?那你争这个时间做什么? 关注这个也没用!java对垃圾的回收完全是jvm控制,你控制不了的!如果你想注重效率还不如多关注一下多线程! 其实我也是在做一道scjp的题的时候有此疑问的,谢谢各位的回答。如没什么问题我想明天结贴!谢谢各位!:) 关于减小BufferedImage大小和深度 在使用java的Desinger做界面时候多种界面布局怎么实现? [求助][求顶]求UDP传送大文件Demo,附上我的拆分代码. log4j 远程log 如何 配置 JTable上显示JCheckBox,如何显示disabled 数据库问题 问个基本语法概念 SCJP中有几道题没搞懂,那位高手帮忙看看,最好能解释一下 谁有Jbuilder 7的注册码? Netty如何获得本次请求对应的应答 为什么无法调用库文件? 能否给些JAVA Demo 让鄙人学习学习?
·如果指向这个对象的引用变量设置为 null,那么只要没有其他引用指向它,这个对象就符合垃圾收集的条件。
·如果指向这个对象的引用变量改为指向别的对象,那么只要没有其他引用指向它,这个对象就符合垃圾收集的条件。
·在方法本地创建的对象当方法返回时就符合垃圾收集的条件,除非它被导出到方法以外(即它被返回或者作为异常抛出)。
·彼此引用的对象,如果没有活动线程访问它们中的任意一个,那么它们就符合垃圾收集的条件。 援引自——scjp认证课程
我见过几种
把reference设为null,调用System.gc(),实现finalize呵呵,搞不清了
在Java中,永远不要试图去控制垃圾收集的调度。那不是你的事,你也无法去控制。:)
即便你调用了System.gc()也不保证这点,呵呵。
那就丢弃对这个对象的引用就可以了。:)
那么设置为null会不会更快?
呵呵,你认为呢?
比如这么一个方法体:
{
Object obj = new Object();
...
...
...
return;
}
退出方法体之后obj这个引用自然就被丢弃了。
{
Object obj = new Object();
....
obj = null; // 哦,不用了!
...
...
}
退出方法体之前,你就丢弃了obj这个引用了。
好像是快一点哦。:)但是,你能保证gc在什么时候把这个obj给回收掉?呵呵,好像不能吧?那你争这个时间做什么?