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

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

為什么字符串是否相等用==不是equals嗎

字符串是否相等不是用 equals ?嗎?為什么用 ?== ?????

正在回答

5 回答

都可以,但是意義可能不同。

舉個例子:

在String類中,當(dāng)你已經(jīng)在內(nèi)存中定義了s1 = "abc",那么當(dāng)你再次定義一個s2 = "abc"時,系統(tǒng)就會自動檢測出"abc"這個字符串已經(jīng)存在了,此時系統(tǒng)就不會給s2重新分配地址值,而是把它直接指向了s1的地址值,使得s1 == s2了;

但是,如果你這樣定義:s1 = "ab";s2 = s1 + "c";那么,s2==s1嗎?就不等于了,在這個時候就只能用equals,有==運(yùn)算符就不對了。

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

_Jack_Han_

用equals s1也不等于s3 equals比較兩者的值是否相同。
2016-02-17 回復(fù) 有任何疑惑可以回復(fù)我~
#2

畫師 提問者

非常感謝!
2016-11-08 回復(fù) 有任何疑惑可以回復(fù)我~

==是比較變量指向的對象內(nèi)存地址,equals方法也是比較對象的內(nèi)存地址,但是String類的equals方法和HashCode方法被重寫,用來判斷兩個對象的類型和值是否相等,也就是字符串的值是否相等(這里可以參考前面Java入門第二季3-9節(jié)),所以這兩個方法在這里是不同的。

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

==和equals在比較對象上本身是相同的,但我們在使用equals的時候往往會重寫equals方法,讓它比較值是否相等。

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

==是判斷兩個String對象的地址(對象的引用)是否相同,equals是判斷兩個String內(nèi)容是否相同

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

首先equals是所有父類Object的比較兩個對象內(nèi)容是否相等的方法。==是基本數(shù)據(jù)類型的比較運(yùn)算符,但是==在比較對象的時候等價于equals,第二,書寫相比之下也比較方便。底層的實(shí)現(xiàn)邏輯都是一樣的,不需要糾結(jié)。

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

舉報

0/150
提交
取消

為什么字符串是否相等用==不是equals嗎

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

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

幫助反饋 APP下載

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

公眾號

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