for前声明,内定义
List   list   =   new   ArrayList(); 
 Bean   bean   =   null; 
 for(int   i=0;i <5;i++){ 
          bean   =   new   Bean(); 
          bean.set(); 
          bean.set(); 
          list.add(bean); 
 } 
 问: 
 1)为什么要在for外声明,在里面定义 
 2)循环了5次,在内存中分别分配了5个地址,还是始终就是一个 
 3)如果上面的换成了下面,放在里面声明,定义与上面有什么区别吗?如果有,可以给讲一下原因吗? 
 List   list   =   new   ArrayList(); 
 for(int   i=0;i <5;i++){ 
          Bean   bean   =   new   Bean(); 
          bean.set(); 
          bean.set(); 
          list.add(bean); 
 }
------解决方案--------------------2.你的Bean在list里面完全是一样的,即指向了同一个Bean 
 3.你定义的Bean是5个不同的存放在List中。 
------解决方案--------------------有区别,上面的代码省内存,一直就用一个bean的空间。下面的代码,相当于每循环一次  分配一个bean空间,占内存。
------解决方案--------------------没什么区别,内存消耗一样: 
 new XXX才占用内存,而两种做法用的new是一样的次数。 
 区别只是第一种方法用了一个引用依次指向5个内存区 
 第二种方法用了5个引用分别指向5个内存区 
 (有一点像c语言中的指针)