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

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

為什么返回值類型為 void時,方法里的String類型的值沒有輸出來,而數組的值卻輸出來了?

為什么返回值類型為 void時,方法里的String類型的值沒有輸出來,而數組的值卻輸出來了?

import?java.util.Arrays; public?class?King22?{ public?static?void?main(String?args[])?{ String?i="111"; String[]?i1={"bbb","aaa"}; num(i,i1); System.out.println(i); System.out.println(Arrays.toString(i1)); } public?static?void?num(String?i,String[]?i1){ i="1111"; i1[0]="22220"; i1[1]="23633"; } }結果為:111[22220, 23633]
查看完整描述

2 回答

已采納
?
Caballarii

TA貢獻1123條經驗 獲得超629個贊

傳入num方法的String i和String[] i1都是傳入的變量的地址。

對于String類型,地址內的內容不可變,只能變更地址(String類型不可變的真正含義),所以i="1111"就改變了i的地址,而main方法里的i還是原來的地址,所以String類型不改變。

對于String[]數組類型,num里得到是i1的地址,地址內的內容是可變的,所以i1里的值重新賦值以后就在main方法里得到了體現。

查看完整回答
1 反對 回復 2016-06-01
?
不停地追逐

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

樓上的說的很正確,就是這個原因,num方法里面改變的是i的地址信息和數組所對應的地址里面的值,所以你在main方法里輸出的時候顯示的是i在main里的地址所對應的值,和已改變內容的數組的值

查看完整回答
1 反對 回復 2016-06-03
  • 2 回答
  • 1 關注
  • 1533 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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