代码一:               for(int i=0;i<10000;i++){
Object obj=new Object();
System.out.println("obj="+obj);

}
代码二:               Object obj=null;
for(int i=0;i<10000;i++){
obj=new Object();
System.out.println("obj="+obj);

}代码二仅在内存中保存一份对该对象的引用,而不像代码一会在内存中产生大量的对象应用,浪费大量的内存空间.
而且增大了系统做垃圾回收的负荷.来源于《JAVA优化编程》我不是很明白,这两段代码能有这么大的区别吗,对于他给的解释我也不是很明白,哪位能给说明一下。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【ryan0629】截止到2008-06-25 14:35:37的历史汇总数据(不包括此帖):
    发帖数:0                  发帖分:0                  
    结贴数:0                  结贴分:0                  
    未结数:0                  未结分:0                  
    结贴率:-------------------结分率:-------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    两段代码不同的地方无非就是把object 对象定义的位置不同嘛。代码一把定义放在for()里面,每循环一次,就增加一个引用。
     
    而代码二因为是在外面事先定义,每循环一次,用到是还是外面定义的那个引用。