黑马程序员技术交流社区
标题:
关于代码的不同执行位置的影响
[打印本页]
作者:
余宏
时间:
2012-5-17 21:22
标题:
关于代码的不同执行位置的影响
本帖最后由 余宏 于 2012-5-17 21:32 编辑
public void test(){
Object obj = new Object();
//被执行的代码;
Obj=null; //此处有作用吗 ?如何才能将该程序更优化?
}
要是像下面这样呢?有什么不一样?
public void test(){
Object obj = new Object();
Obj=null;
//被执行的代码;
}
作者:
李保成
时间:
2012-5-17 22:41
Obj=null;
这句话最大用途就是将obj的指针指向置为空,这样做等于告诉java虚拟机new Object()这个堆中的对象已经成废物了,可以进行销毁了
作者:
李保成
时间:
2012-5-17 22:43
这样做的好处就是优化了程序,减少了不必要的内存消耗。使java垃圾回收器在回收时能够早点处理掉这些废物数据。
作者:
徐然
时间:
2012-5-17 23:23
这个是肯定有区别的,你的要执行的代码那部分如果需要obj指向一个非null对象的话
Obj=null; 这句肯定不能放在要执行的代码上面的
如果要执行代码需要用到Obj=null; 的话
那Object obj = new Object(); 这句又变成废话了
Object obj = new Object();
//被执行的代码;
Obj=null; //要说这也有些用的,断开了变量与对象之间的联系,缩短了对象的生命周期,让垃圾回收机制尽快回收
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2