2 回答

TA貢獻1942條經(jīng)驗 獲得超3個贊
我會說不,因為以下原因。使用原始數(shù)組。不會創(chuàng)建新的。
public static void main(String[] args) {
int[] v = { 1, 2, 3, 4
};
System.out.println(System.identityHashCode(v));
test(v);
System.out.println(Arrays.toString(v));
}
public static void test(int... vals) {
System.out.println(System.identityHashCode(vals));
vals[2] = 1000;
}
打印出來
2085857771
2085857771
[1, 2, 1000, 4]

TA貢獻1893條經(jīng)驗 獲得超10個贊
當(dāng)我解釋JLS時,如果您傳遞一個數(shù)組作為參數(shù),則不會創(chuàng)建新數(shù)組。WJS 的示例還表明,在這種情況下它保持相同的數(shù)組,因為在 vararg 函數(shù)中所做的更改在執(zhí)行后仍然可見。
添加回答
舉報