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

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

?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類的變量中保存的是字符串的首地址,當用==運算時比較的是兩個string變量的地址是否相等;

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

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

0 回復 有任何疑惑可以回復我~
#1

風吹陽光imooc

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

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

0 回復 有任何疑惑可以回復我~

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

0 回復 有任何疑惑可以回復我~

? String B="yes";

? ?if(B=="yes")

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

0 回復 有任何疑惑可以回復我~

因為你上面比較的是字符串型,是一個引用類型,而下面是整型數(shù)據(jù),是一個基本類型,所以會這樣,一般在Java中的比較字符串都是使用equals()方法來比較,當然equals也是需要重寫的

0 回復 有任何疑惑可以回復我~
#1

我喜歡Love 提問者

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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