最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么這里不能用==比較

?Scanner A=new Scanner(System.in);

? String B=A.next();

? ?if(B=="yes")

改成

?Scanner A=new Scanner(System.in);

? Int B=A.nextInt();

? ?if(B==1)

又可以啦,為什么???

正在回答

5 回答

string類(lèi)的變量中保存的是字符串的首地址,當(dāng)用==運(yùn)算時(shí)比較的是兩個(gè)string變量的地址是否相等;

當(dāng)用equals比較的是string變量所指向的內(nèi)容是否相等;

比如String a="abc",b="abc"; 則a與b變量的地址是不相同的但其所指向的內(nèi)容都是"abc"

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

風(fēng)吹陽(yáng)光imooc

果然是大神啊
2015-05-23 回復(fù) 有任何疑惑可以回復(fù)我~

String是一個(gè)類(lèi)啊,不是基本數(shù)據(jù)類(lèi)型,所以?String B=A.next();和?String B="yes";應(yīng)該都是引用,我就是不明白為什么前者可以是用==,而后者不可以。。。。求大神回復(fù)?。?/p>

0 回復(fù) 有任何疑惑可以回復(fù)我~

一個(gè)是基本類(lèi)型,一個(gè)是對(duì)象的比較,==用于基本類(lèi)型是可以的,不比較內(nèi)存地址,只是值比較。

0 回復(fù) 有任何疑惑可以回復(fù)我~

? String B="yes";

? ?if(B=="yes")

但是為什么改成這讓又可以呢????你說(shuō)String是引用才會(huì)造成以上的錯(cuò)誤,這也是引用啊,卻可以使用==比較

0 回復(fù) 有任何疑惑可以回復(fù)我~

因?yàn)槟闵厦姹容^的是字符串型,是一個(gè)引用類(lèi)型,而下面是整型數(shù)據(jù),是一個(gè)基本類(lèi)型,所以會(huì)這樣,一般在Java中的比較字符串都是使用equals()方法來(lái)比較,當(dāng)然equals也是需要重寫(xiě)的

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

我喜歡Love 提問(wèn)者

String B="yes"; if(B=="yes") 但是為什么改成這讓又可以呢????你說(shuō)String是引用才會(huì)造成以上的錯(cuò)誤,這也是引用啊,卻可以使用==比較
2015-04-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么這里不能用==比較

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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