所以我知道 Java 是一种通过复制的语言(至少与迄今为止我从书中学到的一样多)。但是,为什么这样的代码:
public static void main(String[] args) {
(...)
System.out.println("Array before sorting: "+Arrays.toString(ourArray));
System.out.println("Array after sorting: "+Arrays.toString(sortTheArray(ourArray)));
System.out.println("Bah-dum-tss: "+Arrays.toString(ourArray));
}
public static int[] sortTheArray(int[] someArray)
{
Arrays.sort(someArray);
return someArray;
}
为第二行和第三行生成相同的输出?我的意思是 - 如果我们只通过副本传递它,为什么它不只是在第二个 println 上打印排序后的数组,然后在第三个上打印相同的、未排序的数组呢?我没有在任何地方做任何 ourArray = sortTheArray(ourArray) 那么为什么它的值会改变?提前谢谢你,很抱歉提出一个新问题:)