從我所瞭解的Java(這可以說很少= P),Java對待原始值不同於對象。我能想到的一個例子是,基元是按值傳遞的,而對象是通過它們引用的值傳遞的。淺拷貝與基元
延伸這一點,我已經實現創建int數組碼,和淺複製它交給INT的一個新的數組:
public class Test {
public static void main(String[] args){
int[] array = {2,3,4,5};
int[] copy = array;
copy[1] = 0;
for (int i : copy){
System.out.print(i);}
System.out.println();
for (int i : array){
System.out.print(i);}
}
}
然而,輸出是:
2045
2045
所以,我困惑的是爲什麼兩個陣列都改變了?我認爲當我們複製原始數組時,我們只複製了元素的值(因爲我們正在處理基元)?
沒有,你只是創建了第二個參考指向同一個數組。 – Stultuske
ooooooh,這很有道理。因此,如果我要創建一個新的int []副本並將每個元素從數組單獨複製到for循環中,則不會發生這種情況。確實是 – javanewbie
。多一點炒鍋,但它會解決你的問題 – Stultuske