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

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

為什么比較名字時不能用==,要用equals?

為什么比較名字時不能用==,要用equals?

正在回答

5 回答

在基本類型中,“==”比較的是兩者的值

在引用類型中,“==”比較的是兩者的內存地址,及是否為同一個對象

equals比較兩者的內存地址,及是否同一個對象,但在String類中自動重寫,比較是兩者的值是否相等

如果此處用“==”,比較的是內存地址,用equals比較的是兩者的值,因此用equals

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

String類型中的equals方法是重寫過的,并不是直接比對地址是否相同。

name為String類型,比較的時候自然需要使用equals,而“==”比對的話,String類型會有很多情況是無法正常比對的,因為“==”比對的是地址,而String類型的產生和賦值都有可能內容一致,但是為不同的對象。

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

java中的==和equals

對于基本數據類型==號只是比較值是否相同(因為基本數據類型都有自己的內存,不可能相等)

對于引用類型,==比較的是兩個指向的虛地址是不是相同(在堆中的位置)

Equals在沒有重寫的前提下也是比較內存地址

String和Integer類中,因為重寫了Equals,所以比較的是值

實際中可以自己重寫equals方法來比較值


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

比較String類型的內容用equals,比較String類型的引用地址用==,除此之外沒有重寫的equals都是比較地址的,比較字符串是用equals 因為String類型的數據在棧中存放的是引用地址,string比較特殊,它內部處理不一樣

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

“”==“”? 比較的是地址是否相同,equals比較的是內容是否相同。

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

舉報

0/150
提交
取消

為什么比較名字時不能用==,要用equals?

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

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

幫助反饋 APP下載

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

公眾號

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