導航:首頁 > 編程語言 > java引用數組

java引用數組

發布時間:2025-08-25 21:19:00

① 咨詢java高手,對象數組作為方法參數時的引用傳遞的問題

方法一其實也是按引用傳遞,但是千萬千萬要注意,你要修改的是「對象的值」,而不是「對象引用的值」。形參和實參對應的是對象的引用地址,所以這句寫得很有問題: str1=str2;
你這里是試圖將str1的值用str2代替, 但是這里的str1是形參,當外面傳入了一個實參的對象引用是,你只是將內部的形參的引用改掉了,而沒有修改實參的內容...這樣在內部是把str1,str2對調了,但是外部實參的對象引用沒有變,還是原來的值。

如果要把該方法生效,可以修改方法1如下:

public void SwapString1(StringBuffer str1, StringBuffer str2) {
StringBuffer str3 = new StringBuffer();
str3.append(str1.toString());
str1.replace(0, str2.toString().length(), str2.toString());
str2.replace(0, str3.toString().length(), str3.toString());
}
str1=str2;

② Java 為什麼字元數組名無法作為引用來傳遞

因為你在 deleteRepeats方法中 charArr=str.toCharArray();這一步進行的時候,他根本不是在原有數組上進行修改,而是將方法內的局部變數charArr指向了一個數組,這個數組是toCharArray()生成的。而原有的數組自然是不變。

誤區1.你以為charArr是一個對象,其實charArr只是一個引用。charArr=str.toCharArray();改變的是引用,沒有改變引用指向的對象。
=運算符,只改變了引用,沒有改變任何對象,原數組沒有改變,新數組也不是=運算符生成的。

誤區2.你以為方法內的charArr和main中的charArr是一個引用,其實他們是兩個引用只不過,一開始指向一個數組,charArr=str.toCharArray();執行過之後,改變了deleteRepeats方法charArr引用。 使其指向了一個新數組。

閱讀全文

與java引用數組相關的資料

熱點內容
蘋果手機怎樣和智能手機傳文件 瀏覽:239
cnc數控編程在哪裡學 瀏覽:702
阿爾派如何連接網路 瀏覽:810
2014手機qq所有的版本 瀏覽:58
活字格javascript 瀏覽:352
app合作需要注意什麼 瀏覽:370
o2o手機網站源碼 瀏覽:170
jsp彈出注冊頁面 瀏覽:56
三星s6edge十升級70 瀏覽:987
電腦端微信查看源代碼 瀏覽:795
ibatis配置文件詳解 瀏覽:658
網路專用配置文件 瀏覽:837
科技論文word下載 瀏覽:570
vuejs20路由 瀏覽:853
vs導出項目源代碼 瀏覽:826
ca證書投標生成文件怎麼找不到 瀏覽:398
車機無網路怎麼下載 瀏覽:891
測試linux配置文件可用 瀏覽:353
js158航班 瀏覽:129
醫療行業怎麼做網站 瀏覽:135

友情鏈接