日期:2014-05-20  浏览次数:20716 次

创建对象放在方法里面/外面,或者方法for里面/外面,有什么区别
    public static void main(String []args)
{
randomDemo rd=new randomDemo(); //a
for (int i=0;i<25 ; i++)      
{
 rd.rd();

}
}


像这个a语句 放在for里面和外面运行结果一样  我不知道区别在哪 

	
            Random r=new Random();
 void rd()
{
int a= r.nextInt();
System.out.println("a="+a);

还有这个Random对象 放在方法外面/方法里面.都不影响这个方法的调用 


到底应该怎么写  如果是for一次 创建一次对象 
那么垃圾回收也会把上一个对象收了吧
因为 那个引用又有新的对象用了  上个对象没了引用 就变垃圾了
求高手指点啊

------解决方案--------------------
N个对象每个对象调用一次方法
和一个对象调用N次方法肯定不一样。
最基本的共享的成员变量就不一样,
第一种是各自使用各自的成员变量,
第二种是共享一个成员变量
------解决方案--------------------
引用:
N个对象每个对象调用一次方法
和一个对象调用N次方法肯定不一样。
最基本的共享的成员变量就不一样,
第一种是各自使用各自的成员变量,
第二种是共享一个成员变量


路过 +1
很明显不需要创建那么多次对象,省资源很多
------解决方案--------------------
放里面是每次都重新创建对象并调用,显然浪费资源空间,
一般都是放在外面,不过一下情况特殊。

for () {
Bean bean = new Bean();
bean.setXXX(XXX);
...
list.add(bean);
}

这种需要放在里面,经常有人问类似的问题。
------解决方案--------------------
引用:
N个对象每个对象调用一次方法
和一个对象调用N次方法肯定不一样。
最基本的共享的成员变量就不一样,
第一种是各自使用各自的成员变量,
第二种是共享一个成员变量

++
------解决方案--------------------
1、放在函数外面,是作为类的一个field存在的。而且是在调用该类的构造器之前就做了一次初始化。