程序如下:
for (int i = 0; i < names.length; i++) {// 初始化List集合
Person person = new Person();
person.setName(names[i]);
person.setId_card(id_cards[i]);
list.add(person);
}假设names.length为3,循环中对象person被创建了3次?在内存中为person分配了3次内存吗?同一对象名可以被反复声明多次吗?
for (int i = 0; i < names.length; i++) {// 初始化List集合
Person person = new Person();
person.setName(names[i]);
person.setId_card(id_cards[i]);
list.add(person);
}假设names.length为3,循环中对象person被创建了3次?在内存中为person分配了3次内存吗?同一对象名可以被反复声明多次吗?
解决方案 »
- 大家觉得要把JAVA基础扎实了,至少看哪些书 ?
- 急!不知道这个问题大家见过没!
- [200分]能否给一个关于关于多线程synchronized应用的例子,确切体现也多线程的同步应用,我是新手请关照一下,例子最好能看到效果!!
- 游戏是这样产生的--读thinking in java写的游戏
- 如何通过jdbc物理删除vfp中的数据
- 如何在java applet中实现菜单??
- applet和swing的问题(急)
- JBoss3连接MsSqlServer2000 用哪种JDBC驱动比较好??
- Applet是否可以调用服务器端的bean,或者是Frame
- 请问,学习jdbc需要多深的数据库基础?
- SWT编程,怎么修改窗口的标题栏样式?
- 关于JFC——ApplictionWindow的系统托盘
楼主【insect_fly】截止到2008-08-03 04:18:47的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:40 每贴平均分数:13
回帖的总数量:3 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:3 未结的总分数:40
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=insect_fly
你是写在循环里面的,每次运行时,连对象的引用都不一样,何况对象。所以不存在重复声明的问题。2 只要你每次new Person, 则会产生一个新的对象,其赋值给的引用,person 就会变化为指向新的地址。
所以是一个对象引用,被不断的赋值给了不同的对象而已
person是一个引用指向了刚刚创建的Person对象,person这个引用
放在了栈里,Person对象放在堆里。第二次执行这句Person person = new Person();时person这个引用就不指向之前创建的第一个Person对象了,
而是指向了刚刚创建的第二个Person对象,注意这里并没有
再次声明一个person引用,只是原来的person指向新的Person对象而已。