为什么下一个代码的工作方式类似于使用引用类型而不是原始类型?
int[] a = new int[5];
int[] b = a;
a[0] = 1;
b[0] = 2;
a[1] = 1;
b[1] = 3;
System.out.println(a[0]);
System.out.println(b[0]);
System.out.println(a[1]);
System.out.println(b[1]);
输出是: 2 2 3 3 而不是 1 2 1 3
答案 0 :(得分:6)
int数组的内容可能不是引用,但int []变量是。通过设置b = a
,您将复制引用,并且两个数组指向同一块内存。
答案 1 :(得分:2)
我在这里描述你在做什么:
int[] a = new int[5];
int[] b = a;
答案 2 :(得分:0)
您没有按int[] b = a
如果您需要新实例(以及您的预期结果),请添加clone()
:int[] b = a.clone()
祝你好运
答案 3 :(得分:0)
a
和b
都指向( )相同的数组。更改a
或b
中的值将更改另一个值的相同值。