3 回答
TA貢獻1829條經驗 獲得超13個贊
在 Java 中,變量名稱保留實際數組的引用。因此st=new Object[20],創建一個大小為 20 的數組并將引用分配給st,以及newSt=new Object[40]創建一個大小為 40 的數組并將引用分配給newSt。
因此,當我們設置時,我們只是分配 所引用的st=newSt數組的引用?,F在我們可以用來訪問第二個數組的所有值。stnewStst
它不會對數組進行任何類型的合并、并集或交集。
TA貢獻1775條經驗 獲得超8個贊
我認為您很困惑,因為您試圖將其視為結構分配,但它是一個參考名稱。
當您secondArray = firstArray將變量設置secondArray為引用時firstArry,兩個具有不同名稱的變量引用內存中的同一對象。您之前的初始化secondArray將會丟失。
因此, 的大小newSt和所有對象都與 for 相同,st因為newStisst但具有不同的名稱。
您所想的就像是一個使用另一個數組和大小作為參數的構造函數。
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);
添加回答
舉報
