3 回答

TA貢獻1829條經驗 獲得超13個贊
在 Java 中,變量名稱保留實際數組的引用。因此st=new Object[20]
,創建一個大小為 20 的數組并將引用分配給st
,以及newSt=new Object[40]
創建一個大小為 40 的數組并將引用分配給newSt
。
因此,當我們設置時,我們只是分配 所引用的st=newSt
數組的引用?,F在我們可以用來訪問第二個數組的所有值。st
newSt
st
它不會對數組進行任何類型的合并、并集或交集。

TA貢獻1775條經驗 獲得超8個贊
我認為您很困惑,因為您試圖將其視為結構分配,但它是一個參考名稱。
當您secondArray = firstArray
將變量設置secondArray
為引用時firstArry
,兩個具有不同名稱的變量引用內存中的同一對象。您之前的初始化secondArray
將會丟失。
因此, 的大小newSt
和所有對象都與 for 相同,st
因為newSt
isst
但具有不同的名稱。
您所想的就像是一個使用另一個數組和大小作為參數的構造函數。

TA貢獻1719條經驗 獲得超6個贊
長度將是20...
你也可以自己測試一下:
Object[] st = new Object[20];
System.out.println("st: " + st.length);
Object[] newSt = new Object[40];
newSt = st; // newSt was Object[40], st is Object[20] => newSt is now Object[20].
System.out.println("newSt: " + newSt.length);
添加回答
舉報