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

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

java中的對象數組有什么用?

java中的對象數組有什么用?

qq_花開花謝_0 2023-08-09 15:16:26
我知道java是按值傳遞的,就這樣。但是,我仍然無法弄清楚這一點。public static void changeTheName(String obj){  obj.toUpperCase(); }這個方法不會影響原來的字符串對象,還算可以理解。因為字符串是不可變的,并且字符串文字的變化意味著引用變量現在將引用新對象,而舊對象將留給垃圾收集器。但是當我傳遞字符串數組時,我可以更改字符串文字,這意味著我可以更改引用。為什么數組會發生這種情況,因為如果我們這樣做 obj[]= new String[]{} 它不會影響原始數組,原始數組仍然引用舊數組,這類似于直接更改字符串文字public static void ChangeTheName(String obj[]){      for(int i=0;i<obj.length();i++) obj[i]=obj[i].toUpperCase; }編輯: 我正在尋找的答案是 obj 和 obj[0] 的引用是唯一的,這就是為什么第二種方法能夠更改數組的整個內容。因為我來自 C 背景,所以我認為 obj 和 obj[0] 具有相同的引用,但 java 中的情況肯定不是這樣。
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

toUpperCase不改變字符串,它返回一個大寫的新字符串。



查看完整回答
反對 回復 2023-08-09
?
料青山看我應如是

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

 toUpperCase() 不會更改字符串。它返回一個新的大寫字符串。

但據我了解,您想知道為什么對象值在方法中發生變化而不是預先數據類型值?

盡管 Java 是嚴格按值傳遞的,但是傳遞基本類型還是引用類型的精確效果是不同的。

.

當我們將基本類型傳遞給方法時,它是按值傳遞的。但是,當我們將對象傳遞給方法時,情況會發生巨大變化,因為對象是通過有效的引用調用來傳遞的。Java 做了一件有趣的事情,它是按值傳遞和按引用傳遞之間的混合體?;旧希瘮挡荒芨膮?,但函數可以通過調用其中的某些方法來要求參數更改自身。

在創建類類型的變量時,我們僅創建對對象的引用。因此,當我們將此引用傳遞給方法時,接收它的參數將引用與參數引用的同一對象。

這實際上意味著對象的行為就像通過引用調用將它們傳遞給方法一樣。

對方法內部對象的更改確實會反映在用作參數的對象中。


查看完整回答
反對 回復 2023-08-09
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

如果你像下面這樣做只會改變值。


public static void(String obj[]){

 for(String s:obj) {

   s=s.toUpperCase();

  }

}

我認為因此做出改變。




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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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