首页 新闻 赞助 找找看

关于java赋值的疑问

0
悬赏园豆:20 [已解决问题] 解决于 2013-10-30 15:23
例子:
1         int a = 2;
2         int b = a;
3         b = 3;
这个时候a的值还是2,因为第2行是传递的值。
30         List list = new ArrayList ();
31         list.add(1);
32         list.add(2);
35       
36         //迭代
37         Iterator  itrt = list.iterator();
38         while(itrt.hasNext()){
39             int x= (Integer)itrt.next();
40             x = 10; //list改值
41         }
 
39行的赋值貌似就是把x当成list里面当前元素的别名了,因为40行赋值后,list里面的值改变了,全都变成了10。
 
问题:
1,这个别名和引用有什么关系吗?
2,怎么判断java中的赋值?iterator的next里面有一段说明Returns the next element in the iteration. 跟这个有什么关系吗?
 
没有指针有点不适应,因为不懂概念,描述问题也不是很清楚,请各位大侠不吝赐教
剑握在手的主页 剑握在手 | 菜鸟二级 | 园豆:259
提问于:2013-10-30 14:17
< >
分享
最佳答案
1
因为40行赋值后,list里面的值改变了,全都变成了10。

 

扯淡吧,你再看一遍,list内的值不会改的。

收获园豆:20
林J | 菜鸟二级 |园豆:202 | 2013-10-30 14:57

没有什么别名。java里的对象分为值类型和引用类型,引用类型就是你说的指针的概念,但是int类型是值类型,所以不会出现你说的情况。

迭代器的next方法是返回迭代器的下一个元素,然后把指针向前移动一位啊。

 

林J | 园豆:202 (菜鸟二级) | 2013-10-30 15:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册