Sup s1=new Sup();
s1.setId(1);
List<Sup> s=new ArrayList<>();
s.add(s1);
System.out.println(s);
s1=new Sup();
s1.setId(111);
System.out.println(s);
这段代码为什么两次输出的结果会是一样的?ID都是1,为什么第二次输出的不是111?List中存储的不是引用吗?
1 回答

撒科打诨
TA贡献1934条经验 获得超2个赞
Java中虽然传的是引用,但是用的时候是直接操作的原对象。你虽然是给的LIST引用,但是LIST会通过引用把原对象拿到,之后你给的那个引用跟他没有关系了。
举个栗子:
你拿了一个laser(汉字不让发啊)(引用)在墙上刻了一个字(对象),然后用LASER指给LIST让它记下来,
然后!你又用LASER在墙上别处刻了另一个字,现在已经有两个字了,新的还没有告诉LIST,所以LIST不知道啊~
除非你把LASER指回去,改原来那个字~
添加回答
举报
0/150
提交
取消