JAVA基礎

==

“==”或等號操作在Java編程語言中是一個二元操作符,用于比較原生類型和對象。就原生類型如boolean、int、float來說,使用“==”來比較兩者,這個很好掌握。但是在比較對象的時候,就會與equals()造成困惑。“==”對比兩個對象基于內存引用,如果兩個對象的引用完全相同(指向同一個對象)時,“==”操作將返回true,否則返回false。

equals()

equals()方法定義在Object類里面,根據具體的業務邏輯來定義該方法,用于檢查兩個對象的相等性。例如:兩個Employees被認為是相等的如果他們有相同的empId的話,你可以在你自己的domain對象中重寫equals方法用于比較哪兩個對象相等。equals與hashcode是有契約的(無論什么時候你重寫了equals方法,你同樣要重寫hashcode()方法),默認的equals方法實現是與“==”操作一樣的,基于業務需求重寫equals方法是最好的實踐之一,同樣equals與compareTo保持一致也不足為奇,以至于存儲對象在Treemap或treeset集合中時,將使用compareTo方法檢查相等性,行為是一致的。

equals與==區別

1.== 常用于比較原生類型,equals常用于比較對象類型

2.==與equals用于比較對象類型,當引用地址不相同時,==返回false而equals()返回值取決于重寫的實現。可以是true也可以是false.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制?答:可以有多個類,但只能有一個publ...
    岳小川閱讀 957評論 0 2
  • 這個系列面試題主要目的是幫助你拿輕松到offer,同時還能開個好價錢。只要能夠搞明白這個系列的絕大多數題目,在面試...
    獨念白閱讀 350評論 0 3
  • J2SE 基礎 八種基本數據類型的大小,以及他們的封裝類。 八種基本數據類型,int ,double ,long ...
    鏡中無我閱讀 127評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • 我從夜里醒來, 四處是光, 我的眼睛, 早已消失。
    摩詰梵心閱讀 384評論 8 8