課程
/后端開發
/Java
/Java入門第三季
為什么比較名字時不能用==,要用equals?
2018-03-27
源自:Java入門第三季 6-1
正在回答
在基本類型中,“==”比較的是兩者的值
在引用類型中,“==”比較的是兩者的內存地址,及是否為同一個對象
equals比較兩者的內存地址,及是否同一個對象,但在String類中自動重寫,比較是兩者的值是否相等
如果此處用“==”,比較的是內存地址,用equals比較的是兩者的值,因此用equals
String類型中的equals方法是重寫過的,并不是直接比對地址是否相同。
name為String類型,比較的時候自然需要使用equals,而“==”比對的話,String類型會有很多情況是無法正常比對的,因為“==”比對的是地址,而String類型的產生和賦值都有可能內容一致,但是為不同的對象。
java中的==和equals
對于基本數據類型==號只是比較值是否相同(因為基本數據類型都有自己的內存,不可能相等)
對于引用類型,==比較的是兩個指向的虛地址是不是相同(在堆中的位置)
Equals在沒有重寫的前提下也是比較內存地址
String和Integer類中,因為重寫了Equals,所以比較的是值
實際中可以自己重寫equals方法來比較值
比較String類型的內容用equals,比較String類型的引用地址用==,除此之外沒有重寫的equals都是比較地址的,比較字符串是用equals 因為String類型的數據在棧中存放的是引用地址,string比較特殊,它內部處理不一樣
“”==“”? 比較的是地址是否相同,equals比較的是內容是否相同。
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
5 回答為什么用equals比較是false
4 回答為什么老師重寫的equals方法中name需要用equals()進行比較而不用==?
5 回答為什么這里不能用==比較
4 回答course2用equals比較為什么出來的是false?
1 回答6-1老師說為什么name需要用equals()進行比較
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-08-02
在基本類型中,“==”比較的是兩者的值
在引用類型中,“==”比較的是兩者的內存地址,及是否為同一個對象
equals比較兩者的內存地址,及是否同一個對象,但在String類中自動重寫,比較是兩者的值是否相等
如果此處用“==”,比較的是內存地址,用equals比較的是兩者的值,因此用equals
2018-08-28
String類型中的equals方法是重寫過的,并不是直接比對地址是否相同。
name為String類型,比較的時候自然需要使用equals,而“==”比對的話,String類型會有很多情況是無法正常比對的,因為“==”比對的是地址,而String類型的產生和賦值都有可能內容一致,但是為不同的對象。
2018-05-13
java中的==和equals
對于基本數據類型==號只是比較值是否相同(因為基本數據類型都有自己的內存,不可能相等)
對于引用類型,==比較的是兩個指向的虛地址是不是相同(在堆中的位置)
Equals在沒有重寫的前提下也是比較內存地址
String和Integer類中,因為重寫了Equals,所以比較的是值
實際中可以自己重寫equals方法來比較值
2018-03-30
比較String類型的內容用equals,比較String類型的引用地址用==,除此之外沒有重寫的equals都是比較地址的,比較字符串是用equals 因為String類型的數據在棧中存放的是引用地址,string比較特殊,它內部處理不一樣
2018-03-27
“”==“”? 比較的是地址是否相同,equals比較的是內容是否相同。