java 使用对象引用遍历算法的jvm中,手动将引用设为null对gc有帮助 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void xxx() {Button b = new Button();......b = null; }=================用到这里的时候 b 所占用的内存并没有释放。b是一个句柄,他的生命周期是从创建时开始,到这个方法结束时回收。b = NULL;这样写,就把 原来b与原来他指向的对象给隔离了。目的是为了让gc尽快地将b原来指向的那个对象清理掉。至于b自己,还是上面所说的 方法结束时回收 手动将引用设为null对gc有帮助 帮助就在于告诉gc,b现在不指向任何东西,这样new Button()所创建的堆内存就和句柄分开了。gc一看,原来是个没人要的东西,赶紧回收了吧。 谢谢楼上的。不过还有一点疑问,早些时候的GC采用的是引用计数算法,而现在的JVM大都用对象遍历算法无疑在引用计数算法下,手动置NULL对GC帮助很大,那么在现用的对象遍历法下,是否存在无人使用的引用指向该对象,还对GC有帮助呢?? 一个超简单S/C局域网对话工具,在别的电脑无法连接…… java被淘汰了? 大侠知道一下小弟;急 Java里面有没有对应ADOX的对象啊? 在Java MDI应用中,怎样限制一个JInternalFrame窗体只创建一次,如果已经创建,就不能再创建了 公司域名中带中划线“-”该如何起包名? IDE达人乱入,介绍一下各种ide,另外,各位用jcreator的说一下jc到底有什么突出的优点 eclipse集成tomcat问题 Integer对象包装类的新特性,有个疑问 我是一个初学者,里面有源代码,请高手帮我看一下(运行错误) JRE致命错误 Java杂谈(九)--Struts2
Button b = new Button();......b = null;
}=================用到这里的时候 b 所占用的内存并没有释放。
b是一个句柄,他的生命周期是从创建时开始,到这个方法结束时回收。b = NULL;
这样写,就把 原来b与原来他指向的对象给隔离了。
目的是为了让gc尽快地将b原来指向的那个对象清理掉。至于b自己,还是上面所说的 方法结束时回收
不过还有一点疑问,
早些时候的GC采用的是引用计数算法,而现在的JVM大都用对象遍历算法
无疑在引用计数算法下,手动置NULL对GC帮助很大,那么在现用的对象遍历法下,是否存在无人使用的引用指向该对象,还对GC有帮助呢??