猿问

JAVA 关于对象引用的问题

        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中存储的不是引用吗?

HUH函数
浏览 581回答 1
1回答

撒科打诨

Java中虽然传的是引用,但是用的时候是直接操作的原对象。你虽然是给的LIST引用,但是LIST会通过引用把原对象拿到,之后你给的那个引用跟他没有关系了。 举个栗子: 你拿了一个laser(汉字不让发啊)(引用)在墙上刻了一个字(对象),然后用LASER指给LIST让它记下来, 然后!你又用LASER在墙上别处刻了另一个字,现在已经有两个字了,新的还没有告诉LIST,所以LIST不知道啊~ 除非你把LASER指回去,改原来那个字~
随时随地看视频慕课网APP

相关分类

Java
我要回答