2
int[] a = new int[] {7,2,1,10,8,9};
int[] b = a;
Arrays.sort(b);

为什么在 b 上的排序操作之后两个数组都得到排序。不应该只有 b 得到排序吗?

4

4 回答 4

7

因为它只有一个数组。“a”和“b”只是对同一个数组的引用。

如果您使用 clone 方法来复制值,那么 a 和 b 将是不同的数组,只有 b 会被排序。

于 2013-02-20T10:33:25.420 回答
2

因为aandb是对同一个数组的引用。当你这样做

int[] b = a;

你不是在复制你的数组,你只是在复制对同一个数组的引用。

于 2013-02-20T10:34:23.673 回答
0

两者都b指向a同一个数组对象。所以它们都是同一个数组。

于 2013-02-20T10:33:41.057 回答
0

因为将 a 分配给 b 只会分配对数组的引用。内存中只有一个数组,因此无论您从何处访问它,更改它都会改变它。

于 2013-02-20T10:33:55.620 回答