ArrayList newList = new ArrayList();
while (rset.next()){
  BWP_B953Form  modelForm = new BWP_B953Form();
  modelForm.setLab_KONPO_NO(rset.getString("KONPO_NO"));
  modelForm.setLab_ZAIKO_NO(rset.getString("ZAIKO_NO"));
  modelForm.setLab_SERIAL_NO_HANSU(rset.getString("SERIAL_NO_HANSU"));
  modelForm.setLab_B_P_GREEN_STATUS(rset.getString("B_P_GREEN_STATUS"));
  newList.add(modelForm);
}
返回的newList中有所有的数据  这点没有问题  但是我换个写法
ArrayList newList = new ArrayList();
BWP_B953Form  modelForm = new BWP_B953Form();
while (rset.next()){
  
  modelForm.setLab_KONPO_NO(rset.getString("KONPO_NO"));
  modelForm.setLab_ZAIKO_NO(rset.getString("ZAIKO_NO"));
  modelForm.setLab_SERIAL_NO_HANSU(rset.getString("SERIAL_NO_HANSU"));
  modelForm.setLab_B_P_GREEN_STATUS(rset.getString("B_P_GREEN_STATUS"));
  newList.add(modelForm);
}只把 modelForm 定义在循环的外面  也就是所有的循环用同一个中间变量modelForm的时候  取得的结果集newList中所有的数据都是重复的  也就是都和最后一条一样。我想可能是调用newList.add(modelForm); 的时候只是把modelForm的地址赋给了newList 的元素。所以循环到最后所有的元素都指向了modelForm这同一个内存空间(存放的是最后一条数据)。但是我看了ArrayList 的构造方法默认初始化了长度为10的可变长数组来存放元素。难道在调用add()方法的时候不是把modelForm拷贝到对应元素中?但是在构造方法中使用了new 方法来分配了内存空间的啊?对java中传参数只传值的问题又迷惑了。  高手指点下。谢谢!!!!