`

调试中出现的一段代码<关于集合引用>

    博客分类:
  • Java
 
阅读更多
CustomerBean cb = new CustomerBean();

while(rs.next()){
	cb.setUserId( rs.getInt("UserId"));
	cb.setUserName( rs.getString("UserName"));
	cb.setPassword( rs.getString("Password"));
	cb.setTel( rs.getString("Tel"));
	cb.setEmail( rs.getString("Email"));
	cb.setPriority( rs.getInt("Priority"));
	al.add(cb);
}

 这个时候,al(ArrayList)插入都是同一条记录。

 如果把

CustomerBean cb = new CustomerBean();

 

放在while循环中,则正确插入。

 

这个问题发现,集合中存放的是对象引用,一旦引用发生改变,所有对象都将发生变化。

分享到:
评论

相关推荐

    C#编程经验技巧宝典

    76&lt;br&gt;&lt;br&gt;0111 计算字符串中子字符串出现的次数 76&lt;br&gt;&lt;br&gt;0112 获得字符串中大写字母的个数 77&lt;br&gt;&lt;br&gt;0113 获得某字符在字符串中最后出现的位置 78&lt;br&gt;&lt;br&gt;0114 如何找出字符串中某一字符的所有位置 78...

    mysql5.1中文手册

    在同一个数据库中创建多个表的缺陷&lt;br&gt;7.5. 优化MySQL服务器&lt;br&gt;7.5.1. 系统因素和启动参数的调节&lt;br&gt;7.5.2. 调节服务器参数&lt;br&gt;7.5.3. 控制查询优化器的性能&lt;br&gt;7.5.4. 编译和链接怎样影响MySQL的速度&lt;br&gt;7.5.5. ...

    C#微软培训资料

    14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...

    Advanced Bash-Scripting Guide <>

    Checking a remote server for identd&lt;rojy bug&gt; 13-6. pidof 帮助杀掉一个进程 13-7. 检查一个CD 镜像 13-8. 在一个文件中创建文件系统 13-9. 添加一个新的硬盘驱动器 13-10. 使用umask 来将输出文件隐藏起来 13-...

    net学习笔记及其他代码应用

    答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生) 30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的...

    Inno Setup编译器功能增强 5.2.3 (build 090506)

    把 Inno Setup 中的编译器编辑程序 Compil32.exe 进行的部分修改,使它尽量适合 [code] 段代码的编写。 引用restools的原话:“以后的修改方向是把 [code] 段的代码编写变得更容易,但是不会费时间实现 ISTOOL 一样...

    PerCM个人代码管理软件

    经过一段时间的修改,现在代码很糟糕,是到了改对其进行修整的时候了。好看的代码,将是更为宝贵的财富。更何况这里编写的是用于资料统计的工具了? 进行重构的时候,发现自己还是有想法的。的确创新不是无本之源,...

    c#学习笔记.txt

    详细介绍请参阅rainbow(一个长着胡子的彩虹)翻译的&lt;&lt;展现C#&gt;&gt; ,前几章非常的有趣。 看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也...

    操作系统(内存管理)

    要试着运行这些示例,需要先 复制本代码清单,并将其粘贴到一个名为 malloc.c 的文件中。接下来,我将一次一个部分地对该清单进行解释。 在大部分操作系统中,内存分配由以下两个简单的函数来处理: void *...

    内存管理内存管理内存管理

    #include &lt;unistd.h&gt; void malloc_init() { /* grab the last valid address from the OS */ last_valid_address = sbrk(0); /* we don't have any memory to manage yet, so *just set the beginning to be...

    vc++ 开发实例源码包

    代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...

    JAVA面试题最全集

    在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(&lt; &gt; & “”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自...

    java 面试题 总结

    栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 19、forward 和redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    超级有影响力霸气的Java面试题大全文档

     栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 22、forward 和redirect的区别  forward是服务器请求资源,服务器直接访问目标地址的URL,把...

    20秋学期(1909、2003、2009-)《计算机病毒分析》在线作业.docx

    A:内存映射 B:基地址重定位 C:断点 D:跟踪 答案:D 在WinDbg的搜索符号中, ()命令允许你用符号在没有加载的代码中设置一个延迟断点。 A:bu B:x C:Ln D:dt 答案:A WinDbg的内存窗口支持通过命令来浏览内存,以下...

Global site tag (gtag.js) - Google Analytics