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

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

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

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

正在回答

5 回答

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

舉個(gè)例子:

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

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

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

_Jack_Han_

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

畫師 提問者

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

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

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

==和equals在比較對(duì)象上本身是相同的,但我們?cè)谑褂胑quals的時(shí)候往往會(huì)重寫equals方法,讓它比較值是否相等。

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

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

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

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

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

舉報(bào)

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號(hào)

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