`

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

    博客分类:
  • 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. ...

    jsp应用开发详解源代码

    JSP通过`&lt;jsp:useBean&gt;`标签可以方便地在页面中引用和操作JavaBean,实现业务逻辑和视图的解耦。 9. **部署和运行** 要运行JSP应用,需要一个支持JSP和Servlet的Web服务器,如Tomcat、Jetty等。将源代码部署到...

    Freemarker模版开发指南

    `&lt;#macro&gt;`定义宏,创建可重用的代码段。模板继承则通过`&lt;#assign&gt;`和`&lt;@parent&gt;`实现,子模板可以继承父模板的结构,然后进行定制。 5. **控制结构** Freemarker提供丰富的控制结构,如条件语句(`&lt;#if&gt;`, `&lt;#...

    C#微软培训资料

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

    Java 理论和实践 了解泛型

    Java 泛型是Java编程语言中的一个重要特性,它在JDK 5.0版本中引入,目的是为了提高代码的类型安全性和重用性。泛型允许程序员在定义类、接口和方法时,指定一个或多个类型参数,这些参数在实际使用时会被具体的类型...

    CAML语言学习规范

    `&lt;FieldRef&gt;`元素用于引用列表中的字段,而`&lt;Value&gt;`元素则用于指定比较值及其类型。 #### 结论 CAML作为一种专用于SharePoint的查询语言,虽然随着技术的发展,其使用频率有所下降,但在处理复杂的数据检索与操作...

    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-...

    深入探讨C++中的引用和ASSERT断言

    - **性能敏感区域**:避免在性能要求极高的代码段中使用断言,以免影响性能。 - **生产环境**:发布前确保所有的断言都被关闭或者移除,避免影响生产环境的稳定性和性能。 - **错误处理**:对于预期之外的错误处理,...

    c 语言教材

    8. **标准库函数**:C标准库提供了一系列预定义的函数,如输入输出函数&lt;stdio.h&gt;,字符串处理函数&lt;string.h&gt;,数学函数&lt;math.h&gt;等。 9. **错误处理**:C语言中没有异常处理机制,通常通过返回值和全局变量errno来...

    FreeMarker手册

    8. **模板继承与导入**:FreeMarker支持模板继承,通过`&lt;#include&gt;`和`&lt;#macro&gt;`指令,可以实现代码复用和模块化设计。父模板定义基础布局,子模板可以覆盖或扩展特定部分。 9. **国际化与本地化**:FreeMarker支持...

    1000道 互联网Java工程师面试题 485页-PDF密码解除

    - 常见的动态SQL标签有:`&lt;if&gt;`、`&lt;choose&gt;`(`&lt;when&gt;`、`&lt;otherwise&gt;`)、`&lt;trim&gt;`、`&lt;where&gt;`、`&lt;set&gt;`、`&lt;foreach&gt;`等。 11. **除基本标签外的其他XML映射文件标签:** - `&lt;cache&gt;`:用于配置缓存相关的属性。...

    C语言中级学习者代码例子

    8. **位运算**:C语言提供了位运算符(&、|、^、~、&lt;&lt;、&gt;&gt;),通过它们可以直接操作二进制位,这对于理解底层硬件操作和优化代码很有帮助。 9. **错误处理**:良好的错误处理是编写健壮程序的关键。例子中可能包含...

    UML基础与ROSE建模教程

    %&gt;)和指令(&lt;%@ %&gt;),用于编写Java代码。 3. **JSP标签库**: 使用自定义标签(如JSTL)简化页面逻辑,提高可读性和可维护性。 4. **JSP生命周期**: 经历解析、编译、加载、初始化、服务和销毁六个阶段。 5. **...

    JavaScript课件-03.pptx

    循环语句在JavaScript中用于重复执行一段代码,包括`while`、`do...while`、`for`、`for...in`以及它们的控制语句`break`和`continue`。`with`语句允许在特定对象的作用域内执行代码,但不推荐使用,因为可能会导致...

    安卓压缩工具集说明文档1

    java -jar ComPressApk.jar -a &lt;apk_path&gt; -k &lt;keystore_info&gt; [-x86 &lt;url&gt;] [-o &lt;output_filename&gt;] [-slience] [-nosign] ``` - `-a` 后跟APK路径。 - `-k` 后面是签名文件及相关信息。 - `-x86` 选项指定x86架构...

    VS2005(c#)项目调试问题解决方案集锦

    通常发生在异常处理或提前返回的情况下,即代码中存在无法到达的代码段。 **解决方案:** 确保所有的异常处理和返回语句都位于有效的作用域内,避免不必要的代码分支。 #### 7. 索引超出范围。必须为非负值并小于...

    二级C语言题库(答案部分)

    10. **标准库函数**:如数学运算(&lt;math.h&gt;)、内存管理(&lt;stdlib.h&gt;)、输入输出(&lt;stdio.h&gt;)等,掌握这些库函数可以提高编程效率。 通过学习和实践这些知识点,并结合这个“二级C语言题库(答案部分)”,考生...

    c 语言 基础代码

    - 循环结构(for,while,do-while)用于重复执行一段代码,直到满足特定条件为止。 - 逻辑结构如break和continue用于控制循环的流程。 5. **函数**: - 函数是可重用的代码块,可以接收参数并返回值。 - `void...

    C语言教材课后题答案.zip

    3. **控制结构**:条件语句(if...else,switch...case)用于根据不同的条件执行不同的代码块,循环语句(for、while、do...while)则用于重复执行某段代码,掌握这些控制结构的用法可以编写出复杂的逻辑。...

Global site tag (gtag.js) - Google Analytics