首页 新闻 会员 周边 捐助

循环中对象声明与创建的合理位置

0
[待解决问题]
StringBuilder a;
for (int i=0;i<3;i++){
a = new StringBuilder();
a.append(i);
}



for (int i=0;i<3;i++){
StringBuilder a = new StringBuilder(); 
 a.append(i);
}

哪个更加合理?为什么
punk宇的主页 punk宇 | 菜鸟二级 | 园豆:204
提问于:2017-05-25 11:05
< >
分享
所有回答(2)
1

都不合理..不要在循环里new对象.更不用说你要做这种累加的操作.却每次都new个新对象.

吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-25 11:07
1

你上面2种方式本质上没太多区别。从作用域来讲,第二种比第一种好。a出了for的作用域就被回收了。

正如楼上所说,如果你的业务只是累加。那你这个代码就是错误的。

应该是

StringBuilder a = new StringBuilder(); 
for (int i=0;i<3;i++){

a.append(i);
}

 

如果你是要重用a对象,那代码是这样的:

 

StringBuilder a = new StringBuilder(); 
for (int i=0;i<3;i++){
a.clear();
a.append(i);//your code
}

 

czd890 | 园豆:14488 (专家六级) | 2017-05-25 11:13

好的,多谢!

支持(0) 反对(0) punk宇 | 园豆:204 (菜鸟二级) | 2017-05-25 11:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册