黑马程序员技术交流社区

标题: 关于代码的不同执行位置的影响 [打印本页]

作者: 余宏    时间: 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