list中添加对象的写法?

helen0823 2010-04-14 12:06:39

List list=new ArrayList();

String str=null;
for(int i=0;i<10;i++){
str=new String("123"+i);
list.add(str);
}


List list=new ArrayList();

for(int i=0;i<10;i++){
String str=new String("123"+i);
list.add(str);
}


哪种写法,对象更容易被回收
...全文
714 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZangXT 2010-04-15
  • 打赏
  • 举报
回复
学java的第一个课应该让大家分清什么是对象,什么是引用;分不清,贻害无穷
ZangXT 2010-04-14
  • 打赏
  • 举报
回复
可以参考一下:Effective Java
Item 45: Minimize the scope of local variables
long563679994 2010-04-14
  • 打赏
  • 举报
回复
List list=new ArrayList();
String str="";
for(int i=0;i<10;i++){
str="123"+i;
list.add(str);
}
这样更快了
long563679994 2010-04-14
  • 打赏
  • 举报
回复
sf

第一个好一点,因为第一个只创建一次对象,所以他花费的内存少一些当然也利于数据的读取
再不明白加QQ:563679994

我们共同讨论

给分啊

ZangXT 2010-04-14
  • 打赏
  • 举报
回复
首先,没有性能上的差别。
其次,后一种String str的作用域更小,比较好。
draem0507 2010-04-14
  • 打赏
  • 举报
回复
第一种好,因为New的时候Java虚拟机要为str开辟内存空间,
其次就是for(int i =0;i<10;i++){str=str+i}和while(i<10){str=str+i;i++}因为有区别,从算法的角度看好像第二种更优。
liujun3512159 2010-04-14
  • 打赏
  • 举报
回复
当然是后一种了呀
fskjb01 2010-04-14
  • 打赏
  • 举报
回复
晕,不用那么扣吧!!
java_zhengjd 2010-04-14
  • 打赏
  • 举报
回复
学习了,个人感觉后面的那个作用域小,可能会好点,但10楼写的更简洁。
Dazzlingwinter 2010-04-14
  • 打赏
  • 举报
回复

List<String> list=new ArrayList<String>();
int i=0;
while(i<10){
list.add("123"+(i++));
}

感觉这样更好些
BearKin 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zangxt 的回复:]
首先,没有性能上的差别。
其次,后一种String str的作用域更小,比较好。
[/Quote]
作用域越小越容易回收 艘得四嘎
Ark032425 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zangxt 的回复:]
首先,没有性能上的差别。
其次,后一种String str的作用域更小,比较好。
[/Quote]
用作用域小的更合算
James.Ji 2010-04-14
  • 打赏
  • 举报
回复
极端的情况下只会差一个,第一段代码中最后一个对象的作用域在for之后还存在,所以不会回收。第二段代码作用域在for中,所以如果发生内存紧张的时候,会回收全对象占用的资源
小孟阿良 2010-04-14
  • 打赏
  • 举报
回复
不是很好的选择,敲错了
小孟阿良 2010-04-14
  • 打赏
  • 举报
回复
第一种好点,在循环中创建对象是一个是很好的选择,尽量少用或者不用
WuBill 2010-04-14
  • 打赏
  • 举报
回复
就这样

List list=new ArrayList();
for(int i=0;i<10;i++){
String str=new String("123"+i);
list.add(str);
}
dukongting 2010-04-14
  • 打赏
  • 举报
回复
第一种好些。。。
不推荐10楼的。。。虽然简洁,但代码难理解。。。
dataforyou 2010-04-14
  • 打赏
  • 举报
回复
路过,JFL
tanxd39 2010-04-14
  • 打赏
  • 举报
回复
第一种创建的对象要少些,不过还是顶10楼的
kingsword588 2010-04-14
  • 打赏
  • 举报
回复
支持楼上的
加载更多回复(6)

62,618

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧