java基础问题请教

xxxxxx1992 2008-04-07 06:38:51
java基础问题请教
2段jdbc代码:
1)TestBean bean = new TestBean();
try {

while(rs.next()){
bean.setUserid(rs.getInt(1));
bean.setUsername(rs.getString(3));
bean.setCardNumber(rs.getLong(5));
bean.setEmail(rs.getString(4));
list.add(bean);
}.....
2)try {
while(rs.next()){
TestBean bean = new TestBean();
bean.setUserid(rs.getInt(1));
bean.setUsername(rs.getString(3));
bean.setCardNumber(rs.getLong(5));
bean.setEmail(rs.getString(4));
list.add(bean);
}.....
第一段代码TestBean定义在while循环体外,结果list中得到的值全部相同,
第二段代码TestBean定义在while循环体内,没有问题。

这个一时忘了是什么原因,是定义第一种情况我在不断得给同一个变量赋值么?list中已经加入的bean值会被下一次加入的bean值覆盖掉么?
求详细解答,谢谢。
...全文
213 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjiwenzjw 2008-04-09
  • 打赏
  • 举报
回复
初学java,看了各位的解释,真的是学习不少啊!!
anqini 2008-04-09
  • 打赏
  • 举报
回复
你第一个程序是每次执行都是指同一个bean,第二个程序,你每次执行的都是不同的bean,理所当然的出你所说的结果了!
yuanjun_xf 2008-04-09
  • 打赏
  • 举报
回复
顶下!
duzhonghua 2008-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 java2000_net 的回复:]
第一个把一个类重复放入list,当然得到了相同的值了!

因为后面的赋值影响的是同一个对象! TestBean bean
[/Quote]
haoxiongok 2008-04-09
  • 打赏
  • 举报
回复
第二个每次运行时都重新的初始化了
fy_kenny 2008-04-09
  • 打赏
  • 举报
回复
是覆盖了之前的了
不懂编程 2008-04-09
  • 打赏
  • 举报
回复
不给分了?LZ不厚道
ultimate_fancy 2008-04-09
  • 打赏
  • 举报
回复
第一种情况是因为,list中存储的bean指向的都是同一块内存,也就是都指向了最后一个实体内容。list中存储的不是实体本身,而是指向实体的引用,或者说是地址。
jojo_m 2008-04-07
  • 打赏
  • 举报
回复
初学Java,虽然上面的代码看不大懂,不过看了上面的大虾的解释,基本知道错在哪里。。。
学习了
fyfsyfy 2008-04-07
  • 打赏
  • 举报
回复
第一次碰到 刚看也蒙 现在想通了 学习了
asdftest 2008-04-07
  • 打赏
  • 举报
回复
要做网站的朋友看过来:会打字就会做网站,空间、域名、网站程序全包!
zjhlht 2008-04-07
  • 打赏
  • 举报
回复
学习了~~~~~
xxxxxx1992 2008-04-07
  • 打赏
  • 举报
回复
呵呵,晓得了,多谢各位,新人入坛先不给分了,哈哈,结了。
dracularking 2008-04-07
  • 打赏
  • 举报
回复
第一种情况bean的内容是在变 但bean没变
gjgj3368 2008-04-07
  • 打赏
  • 举报
回复
同一个对象,多次赋值,最终的值就是最后一次赋的值
所以第一种情况得到了相同的值
xxxxxx1992 2008-04-07
  • 打赏
  • 举报
回复
第一种情况:
变量只有一个,引用的地址没变,变量赋于新值得时候,list中已存在的值被覆盖,同时加入一个相同的新值,最后list中的值就全部相同了,可以这样理解吗?
daohua 2008-04-07
  • 打赏
  • 举报
回复
这是你C没有学好咯。第2个的循环每执行一次,bean对象都是重新创建的。
老紫竹 2008-04-07
  • 打赏
  • 举报
回复
第二个则不同,每个循环都会重新new一个,则 TestBean bean 引用的地址也就变成了新的对象了!所以是正确的!
老紫竹 2008-04-07
  • 打赏
  • 举报
回复
第一个把一个类重复放入list,当然得到了相同的值了!

因为后面的赋值影响的是同一个对象! TestBean bean

62,623

社区成员

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

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