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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)我們有==運(yùn)算符時(shí)為什么是equals()方法?

當(dāng)我們有==運(yùn)算符時(shí)為什么是equals()方法?

翻閱古今 2019-08-28 14:12:15
當(dāng)我們有==運(yùn)算符時(shí)為什么是equals()方法?當(dāng)我看到equals()方法的實(shí)現(xiàn)時(shí),它什么也沒(méi)做,只是做了什么==。所以我的問(wèn)題是,當(dāng)我們有==運(yùn)營(yíng)商做同樣的工作時(shí),需要將它作為單獨(dú)的方法嗎?
查看完整描述

3 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

您不能重載==運(yùn)算符,但equals(Object)如果您希望它與==運(yùn)算符的行為不同,則可以覆蓋,即不比較引用但實(shí)際比較對(duì)象(例如,使用其全部或部分字段)。

此外,如果你覆蓋equals(Object),也看看hashCode()。這兩個(gè)方法需要兼容(即根據(jù)equals(Object)需要相同的兩個(gè)對(duì)象hashCode()),否則會(huì)發(fā)生各種奇怪的錯(cuò)誤(例如,將對(duì)象添加到集合或映射時(shí))。


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

==比較對(duì)象引用,并詢問(wèn)兩個(gè)引用是否相同。

equals()比較對(duì)象內(nèi)容,并詢問(wèn)對(duì)象是否代表相同的概念。


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

在基元的情況下,==操作員檢查兩個(gè)值是否相同。

如果它不是基元,則檢查它是否是指向?qū)ο蟮耐粚?shí)例的兩個(gè)指針(或引用)。


該equals()方法執(zhí)行自定義檢查Object,通過(guò)使用檢查引用==。但在其他課程中,有時(shí)會(huì)equals()被覆蓋(我不知道這是否是正確的過(guò)去分詞)。equals()必須檢查內(nèi)容。


所以,例如:


int i0 = 34;

int i1 = 34;

int i2 = 35;

// results

i0 == i1: true

i1 == i0: true

i2 == i0: false

但如果我們有非基元


String str0 = new String("Hello man!");

String str1 = new String("Hello man!");

String str2 = new String("!nam olleH");

String str2copy = str2;

// Results

str0 == str1: false // Pointer to two different object, so == will give false

str1 == str2: false // Idem

str2 == str2copy: true // So this are two pointers to the same object

str0.equals(str1): true // This are not the same objects, but they are equal

str1 == str1: true // Again: two times a pointer to the same  object

那么,為什么要str0.equals(str1)回歸true?因?yàn)镾tring類(lèi)具有覆蓋equals()。并且在該方法中,它不會(huì)通過(guò)執(zhí)行來(lái)檢查它們是否相等return this == obj;但是在該方法中,存在完整的檢查。我不知道他們使用哪種方法來(lái)比較兩個(gè)字符串,但這里有兩種可能的方法:


從兩個(gè)字符串生成一個(gè)哈希碼并檢查它們是否相等(int == int)

如果字符相同,則逐字符檢查。

所以我希望現(xiàn)在很清楚。


查看完整回答
反對(duì) 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 449 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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