JAVA 列表引用的一个测试

 public static void main(String[] args) {
        List<byte[]> list=new ArrayList<>();
        byte[] s=new byte[1];
        for(int i=0;i<3;i++){
            s[0]=(byte)i;
            list.add(s);
        }
        list.forEach(System.out::println);
        list.forEach(e->System.out.print(Arrays.toString(e)));
    }

输出结果:
[B@2aae9190
[B@2aae9190
[B@2aae9190
[2][2][2]
可以看到,list中三个元素的内存地址是一样的,list中存的是引用

public static void main(String[] args) {
        List<byte[]> list=new ArrayList<>();
        for(int i=0;i<3;i++){
            byte[] s=new byte[1];
            s[0]=(byte)i;
            list.add(s);
        }
        list.forEach(System.out::println);
        list.forEach(e->System.out.print(Arrays.toString(e)));
    }

输出结果:
[B@2aae9190
[B@2f333739
[B@77468bd9
[0][1][2]

你可能感兴趣的:(java)