【发布时间】:2014-01-08 21:50:28
【问题描述】:
我首先克隆了一维原始数组(它将保存包装器),然后更改了克隆数组的第一个值。但是原始数组的第一个值没有改变。然后我克隆了一个 2D 数组并做了同样的事情。(改变了 array[0][0] 值)。原来的值在 originalArray[0][0] 也被改变了。为什么会这样。这是浅拷贝和深拷贝的原因吗?
我的一维数组示例
int[] arr=new int[2];
arr[0]=1;
arr[1]=2;
int[]arrnew=arr.clone();
System.out.println(arr[0]);
System.out.println(arrnew[0]);
arr[0]=5;
System.out.println(arr[0]);
System.out.println(arrnew[0]);
我的二维数组示例
int[][] arr=new int[2][2];
arr[0][0]=1;
arr[0][1]=2;
arr[1][0]=3;
arr[1][1]=4;
int[][] arrnew=arr.clone();
System.out.println(arr[1][0]);
System.out.println(arrnew[1][0]);
arr[1][0]=5;
System.out.println(arr[1][0]);
System.out.println(arrnew[1][0]);
【问题讨论】: