Arrays.sort()如何更改传递给它的变量?
可能重复:
Java是否通过引用?
我在这里有点困惑。 Arrays.sort(a)如何修改a的值?
int[] a = {9,8,7,6,5,4,3,2,1};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
我认为Java是通过价值...
是的,Java是通过价值传递的。 但是,在这里传递的值是对数组的引用,而不是数组本身。
Java中的对象通过引用的值传递。 所以如果你传入一个对象,它会得到一个引用的副本(如果你将该引用分配给别的东西,只有该参数被修改,原始对象仍然存在并且被主程序引用)。
这个链接展示了有关传递参考值的一些信息。
public void badSwap(Integer var1, Integer var2)
{
Integer temp = var1;
var1 = var2;
var2 = temp;
}
这些是对象的引用,但它们不会被交换,因为它们只是函数作用域中的内部引用。 但是,如果你这样做:
var1.doubleValue();
它将使用对原始对象的引用。
Arrays.sort
不修改变量,它修改变量指向的数组对象。
上一篇: How does Arrays.sort() change the variable passed to it?