我想傳遞一個陣列,而不使用參考,而是直接與價值觀:Java數組傳遞不參考
public static void main(String[] args){
int[] result = insertionSort({10,3,4,12,2});
}
public static int[] insertionSort(int[] arr){
return arr;
}
但它返回了以下異常:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error on token(s), misplaced construct(s)
Syntax error on token ")", delete this token
當我嘗試下面的代碼,它的工作原理,任何人都可以解釋原因嗎?
public static void main(String[] args){
int[] arr = {10,3,4,12,2};
int[] result = insertionSort(arr);
}
public static int[] insertionSort(int[] arr){
return arr;
}
一個重要的注意事項:Java **從來沒有**通過引用傳遞,只有通過價值。 –
你的意思是什麼,而不是通過引用的價值?因爲當我將一個數組傳遞給一個處理該數組值的方法時,原始數組的值也會發生變化。 因此,有時我需要克隆一個數組,如果我不想改變原始數組! –
嘗試接收方法中的數組並初始化方法內的數組(new int [20]或類似的方法),然後將null數組傳遞給方法並在方法外部打印數組,它仍然是'null',這是因爲Java按值傳遞,而不是對象的引用。 –