for前声明,内定义

hailun 2007-09-10 01:37:57
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);
}
...全文
208 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
syhan 2007-09-12
  • 打赏
  • 举报
回复
没什么区别
javafreshfish 2007-09-12
  • 打赏
  • 举报
回复
这与全局变量怀局部变量没有关系吗?
hailun 2007-09-12
  • 打赏
  • 举报
回复
可否详细的给讲解一下
hailun 2007-09-12
  • 打赏
  • 举报
回复
明白了谢谢
飞鸟0922 2007-09-12
  • 打赏
  • 举报
回复
没什么区别,内存消耗一样:
new XXX才占用内存,而两种做法用的new是一样的次数。
区别只是第一种方法用了一个引用依次指向5个内存区
第二种方法用了5个引用分别指向5个内存区
(有一点像c语言中的指针)
zsp137759 2007-09-11
  • 打赏
  • 举报
回复
同意楼上的
l52100 2007-09-11
  • 打赏
  • 举报
回复
有区别,上面的代码省内存,一直就用一个bean的空间。下面的代码,相当于每循环一次 分配一个bean空间,占内存。
hailun 2007-09-10
  • 打赏
  • 举报
回复
如果是5个不同的话,那么它们5个怎么可以使用同一个bean名字呢
bit1010 2007-09-10
  • 打赏
  • 举报
回复
2.你的Bean在list里面完全是一样的,即指向了同一个Bean
3.你定义的Bean是5个不同的存放在List中。
yuanweijie 2007-09-10
  • 打赏
  • 举报
回复
这要看你下面的程序代码了,如果下面用到bean ,那你要必须for循环外边声明~~
zephyr_cc 2007-09-10
  • 打赏
  • 举报
回复
看看
http://community.csdn.net/Expert/topic/5700/5700326.xml?temp=.5095941
http://community.csdn.net/Expert/topic/5718/5718427.xml?temp=.1128046
awusoft 2007-09-10
  • 打赏
  • 举报
回复
我认为没有什么区别.只多定义了向个引用变量而已

62,615

社区成员

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

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