我正在设置一个等于另一个数组的数组。
所以假设数组B =数组C。
然后,如果我对数组B进行操作,改变它的值,那么C也会改变吗?
我想绝对不要说,但我有一个大脑放屁,我觉得我的代码现在发生了什么。
答案 0 :(得分:2)
当你将一个数组分配给另一个数组时,数组将保存引用,所以如果你改变一个数组中的值,它肯定会改变另一个数组的值。
就像你的示例数组B = array C. B将保存对数组C的引用。因此数组B中的任何更改都将反映在数组C中。
答案 1 :(得分:0)
是的,他们被改变了。
数组是一个对象,所以在赋值后只分配引用"数组B =数组C。"两个变量都将保持相同的参考。因此,您将拥有一个对象和两个引用
<强>更新强>
对于&#34;真实副本&#34;您需要使用System.arraycopy()
或Arrays.copyOf()
int[] arrayC = {1,2,3,4,5,6,7,8,9,10};
int[] arrayB = new int[arrayC.length];
System.arraycopy(arrayC, 0, arrayB, 0, arrayC.length );