第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

java引用傳遞的問題

java引用傳遞的問題

慕容3067478 2019-04-13 08:46:35
classDemo{Stringtemp="hello";//此處為了方便,屬性暫時不封裝};publicclassRefDemo03{publicstaticvoidmain(Stringargs[]){Demod1=newDemo();//實例化Demo對象,實例化之后里面的temp="hello"d1.temp="world";//修改temp屬性的內(nèi)容System.out.println("fun()方法調(diào)用之前:"+d1.temp);fun(d1);System.out.println("fun()方法調(diào)用之后:"+d1.temp);}publicstaticvoidfun(Demod2){//此處的方法由主方法直接調(diào)用d2.temp="123";//修改temp值}};第一個問題:d1.temp="world";//修改temp屬性的內(nèi)容這段代碼是不是生成了一個匿名對象"world",然后d1.temp指向它,"hello"變成了垃圾?第二個問題:fun()方法調(diào)用之后輸出的結(jié)果是123不是說“因為String為一個特殊的類,其內(nèi)容不能改變”嗎?那temp到底是Demo的一個屬性還是Demo里面的一個內(nèi)部類呢?為什么d2指向d1的堆內(nèi)存后可以改變d1里面的String類型的值呢?是不是也像上面的代碼一樣,先生成匿名對象"123",之后"world"變成垃圾?
查看完整描述

2 回答

?
幕布斯7119047

TA貢獻1794條經(jīng)驗 獲得超8個贊

String的不可變性是說一旦字符串被創(chuàng)建,對其所做的任何修改都會生成新的字符串對象。
例子如下
publicstaticvoidmain(String[]args){
Stringa="aaa";
//當(dāng)a發(fā)生變化時,返回新的字符串
Stringb=a.toUpperCase();
System.out.println("a:"+a);
System.out.println("b:"+b);
System.out.println("a==b:"+(a==b));
//當(dāng)a不發(fā)生變化時,不返回新字符串。
Stringc=a.toLowerCase();
System.out.println("c:"+c);
System.out.println("a==c:"+(a==c));
}
運行結(jié)果:
a:aaa
b:AAA
a==b:false
c:aaa
a==c:true
                            
查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 334 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號