Java中的==和equals( )方法


在Java中,equals和==都是用於檢測兩個字符串是否相等,返回類型也都是boolean值,但是二者內部處理卻不一樣。

==與equals( )

==在Java中是一個二元操作符,用於比較原生類型和對象。當比較基本類型時,較為好理解;當比較對象時,比較規則是:兩個對象基於內存引用,若兩個對象的引用完全相同,則==返回的結果為true。

 

equals( )方法是Object( )類中,根據具體的業務邏輯來定義該方法,用於檢查兩個對象的相等性。默認是equals方法實現與==操作是一樣的,所以在業務中一般都會重寫equals( )。

==和equals比較時

1.如果比較基本數據類型(或者說是值變量)

當時Java的基本類型做比較時,應使用 == 比較的是他們的值,而equals是不存在的。因為int float等是基本數據類型,沒有equals( )方法,不存在int.equals( )

 

2.如果比較的是復合數據類型(或者說是引用型變量)

當比較引用型變量時:

==比較的是兩個引用是否指向同一個對象實例

equals( )比較看是否被重寫,如果有被重寫則按照重寫的規則比較,沒有重寫則與==比較規則一樣。

(下圖為String中重寫的equals( )方法)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM