3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
在 Java 中,變量名稱保留實(shí)際數(shù)組的引用。因此st=new Object[20]
,創(chuàng)建一個(gè)大小為 20 的數(shù)組并將引用分配給st
,以及newSt=new Object[40]
創(chuàng)建一個(gè)大小為 40 的數(shù)組并將引用分配給newSt
。
因此,當(dāng)我們?cè)O(shè)置時(shí),我們只是分配 所引用的st=newSt
數(shù)組的引用?,F(xiàn)在我們可以用來訪問第二個(gè)數(shù)組的所有值。st
newSt
st
它不會(huì)對(duì)數(shù)組進(jìn)行任何類型的合并、并集或交集。

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
我認(rèn)為您很困惑,因?yàn)槟噲D將其視為結(jié)構(gòu)分配,但它是一個(gè)參考名稱。
當(dāng)您secondArray = firstArray
將變量設(shè)置secondArray
為引用時(shí)firstArry
,兩個(gè)具有不同名稱的變量引用內(nèi)存中的同一對(duì)象。您之前的初始化secondArray
將會(huì)丟失。
因此, 的大小newSt
和所有對(duì)象都與 for 相同,st
因?yàn)?code>newStisst
但具有不同的名稱。
您所想的就像是一個(gè)使用另一個(gè)數(shù)組和大小作為參數(shù)的構(gòu)造函數(shù)。

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
長(zhǎng)度將是20...
你也可以自己測(cè)試一下:
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);
添加回答
舉報(bào)