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

求代码"优化大师"!!!!
一:
Java code

for(int i=0;i<50;i++){
    new SetBean().fun(2+i);
}


二:
Java code

SetBean st = new SetBean();
for(int i=0;i<50;i++){
    st.fun(2+i);
}


这2段代码哪一个合理?求详细解释……

------解决方案--------------------
第二个好点,第一个要new 50次
------解决方案--------------------
探讨
有时不就需要创建n次吗

------解决方案--------------------
我想是第二个吧!如果单是为了用fun()这个方法,显然是没有必要用第一个了。new 出来要占各种资源的吧。
------解决方案--------------------
就这样的话,连 new 都不用了,用静态方法吧。
------解决方案--------------------
这个相差大了

一个事new出多个对象

一个使用原有对对象
------解决方案--------------------
这要看fun()是干嘛的
有的场合是必须new的

如果1,2的执行结果一样,那就是2好

------解决方案--------------------
这要看fun()是干嘛的,如果只是简单的对象
1,2的执行结果一样,那就是2好
 
 

------解决方案--------------------
第二个不解释。LS已经回答了
------解决方案--------------------
探讨

这要看fun()是干嘛的
有的场合是必须new的

如果1,2的执行结果一样,那就是2好

------解决方案--------------------
明白了原理 代码的优化量就很少了 除非是改变方法
------解决方案--------------------
跟着学习一下
------解决方案--------------------
当然是第二个好
------解决方案--------------------
第二个只创建了一个对象
------解决方案--------------------
明显很2!
------解决方案--------------------
很明显第一个。
------解决方案--------------------
肯定是第二段。理由很简单,这样你值创建了一个对象,而第二个你创建了50个对象。因为你要完成的操作是求和,而不是创建这么多对象,所以你只需创建一个对象,然后调用他的就和方法就是了!这样更省内存
------解决方案--------------------
不明白楼主什么意思。。。
------解决方案--------------------
僅以所列源代碼,不再考慮其他因素,
第二個較好,
只 new 一次,
在執行效率較好,使用資源較少
------解决方案--------------------
好多人参加讨论啊 都2
------解决方案--------------------
都是2!哈哈!