list遍历出来值都一样怎么回事

while (rs.next()) {
        DbList dbList = new DbList();
        dbList.setAppLicationname(rs.getString("A_APPLICATION_INSTANCENAME"));
        dbList.setGlobalid(rs.getString("A_GLOBAL_ID"));
        dbList.setIpAddres(rs.getString("IP_ADDRESS"));
        dbList.setDataname(rs.getString("A_ROOT_CLASS"));
        list.add(dbList);
}

 我把DbList dbList = new DbList();
放到while循环中打印出来的数据值得都不一样,

可是我把它放到while外面都一样这是怎么回事?

都不是网list集合里放了嘛?

1、放到外边相当于 你仅创建了一个对象
2、每次循环都修改同一个对象
3、每天添加到list的对象都是同一个引用

即list中的内容是一样的

在里面的时候每次都加的是一个新的对象,放外面的时候加的只有一个对象,只是不断对他进行重新设值而已

放在里面每次循环的时候都是创建新的对象,每个新的对象都放到list里,放到外面是一个对象,每次你都在设置同一个对象

以上3人说的都对,这需要对内存中如何分配了解才行。可以画画内存图分析下就明白了