代码一: 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优化编程》我不是很明白,这两段代码能有这么大的区别吗,对于他给的解释我也不是很明白,哪位能给说明一下。
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优化编程》我不是很明白,这两段代码能有这么大的区别吗,对于他给的解释我也不是很明白,哪位能给说明一下。
楼主【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
而代码二因为是在外面事先定义,每循环一次,用到是还是外面定义的那个引用。