亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重新定義變量后數組的大小是多少?

重新定義變量后數組的大小是多少?

牧羊人nacy 2023-09-27 21:19:27
在 Java 中,我將一個長度為 N 的現有數組分配給一個名為 st 的變量。如果我創建一個大小為 N + k 的相同類型的新數組,稱為 newSt。newSt = st 的結果是什么?newSt 是否會包含 st 的內容和空白空間,或者 newSt 是否會將其長度減少到 st 的長度?Object[] st = new Object[20];// st is filledObject[] newSt = new Object[40];newSt = st;
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

在 Java 中,變量名稱保留實際數組的引用。因此st=new Object[20],創建一個大小為 20 的數組并將引用分配給st,以及newSt=new Object[40]創建一個大小為 40 的數組并將引用分配給newSt。

因此,當我們設置時,我們只是分配 所引用的st=newSt數組的引用?,F在我們可以用來訪問第二個數組的所有值。stnewStst

它不會對數組進行任何類型的合并、并集或交集。


查看完整回答
反對 回復 2023-09-27
?
www說

TA貢獻1775條經驗 獲得超8個贊

我認為您很困惑,因為您試圖將其視為結構分配,但它是一個參考名稱。

當您secondArray = firstArray將變量設置secondArray為引用時firstArry,兩個具有不同名稱的變量引用內存中的同一對象。您之前的初始化secondArray將會丟失。

因此, 的大小newSt和所有對象都與 for 相同,st因為newStisst但具有不同的名稱。

您所想的就像是一個使用另一個數組和大小作為參數的構造函數。



查看完整回答
反對 回復 2023-09-27
?
慕俠2389804

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);



查看完整回答
反對 回復 2023-09-27
  • 3 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號