亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

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

正在回答

5 回答

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

舉個例子:

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

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

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

_Jack_Han_

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

畫師 提問者

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

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

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

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

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

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

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

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

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

舉報

0/150
提交
取消

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

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號