奇怪的排序行为

时间:2013-02-20 10:32:38

标签: java

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

为什么在b上进行排序操作后两个数组都会被排序。不应该只对b进行排序吗?

4 个答案:

答案 0 :(得分:7)

因为它只有一个数组。 ""和" b"仅引用同一个数组。

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

答案 1 :(得分:2)

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

int[] b = a;

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

答案 2 :(得分:0)

ba都指向同一个数组对象。所以它们都是相同的数组。

答案 3 :(得分:0)

因为分配a到b仅指定对数组的引用。内存中只有一个数组,所以只要你从中访问它,就可以改变它。