请教两种引用的声明,哪一个更好,请说明理由,小弟请教public class Demo {                       
                                          
static class Product{                 
int id;                           
}                                     
                                      
public static void main(String[] args)
// TODO Auto-generated method stub
                                          
//1:在外部生命Product类的引用              
List<Product> list = new ArrayList
Product pro = null;               
for(int i=0;i<10;i++){            
pro = new Product();          
pro.id = i;                   
list.add(pro);                
}                                 
//2:在循环内部生命这个引用                   
List<Product> list = new ArrayList
for(int i=0;i<10;i++){            
Product pro = new Product();  
pro.id = i;                   
list.add(pro);                
}                                 
}                                     
}                                         

解决方案 »

  1.   


    你不要误导别人啊!
    在外面的话,就只有一个空间这句话就不对了, pro = new Product();    这句还是每次都分配了空间
      

  2.   

    可以的dos下使用javap -c Demo 去看一下字节码,性能差别并不大
      

  3.   

    用2.性能无差别。而且pro 的作用域小了。
    可以读一下《Effective Java》
    这也是java版三天两头出现的问题。
      

  4.   


    这两种 写法 性能差不多了~  第一种的话 pro 的作用域大一点而已