Java中equals與==的本質區別是什麼?
equals與的區別
==
比較的是變數(棧)記憶體中存放的物件的(堆)記憶體地址,用來判斷兩個物件的地址是否相同,即是否是
指相同一個物件。比較的是真正意義上的指標操作。
1、比較的是操作符兩端的運算元是否是同一個物件。
2、兩邊的運算元必須是同一型別的(可以是父子類之間)才能編譯通過。
3、比較的是地址,如果是具體的阿拉伯數字的比較,值相等則為true,如:
int a=10 與 long b=10L 與 double c=10.0都是相同的(為true),因為他們都指向地址為10的堆。
equals:
public class Father {
public static void main(String[] args) {
// TODO Auto-generated method stub
Father s = new Father();
s.sayHello();
s.sayHello("wintershii");
}
public void sayHello() {
System.out.println("Hello");
}
public void sayHello(String name) {
System.out.println("Hello" + " " + name);
}
}
equals
用來比較的是兩個物件的內容是否相等,由於所有的類都是繼承自java.lang.Object類的,所以
適用於所有物件,如果沒有對該方法進行覆蓋的話,呼叫的仍然是Object類中的方法,而Object中的
equals方法返回的卻是== 的判斷。
總結:
所有比較是否相等時,都是用equals 並且在對常量相比較時,把常量寫在前面,因為使用object的
equals object可能為null 則空指標
在阿里的程式碼規範中只使用equals ,阿里外掛預設會識別,並可以快速修改,推薦安裝阿里外掛來排
查老程式碼使用“==”,替換成equals
相關文章
- 深入探究Java中equals()和==的區別是什麼Java
- Java中(==)與equals的區別Java
- AI智慧與大資料的本質區別是什麼?AI大資料
- Go 中的 channel 與 Java BlockingQueue 的本質區別GoJavaBloC
- Java中equals和==比的是什麼Java
- java 中equals和==的區別Java
- Java中 equals() 方法和 == 的區別Java
- Java之String的equals與contentEquals區別Java
- Java面試題 equals()與"=="的區別?Java面試題
- 【Java】equals 和 == 的區別Java
- Java基礎-- ==號與equals()方法的區別Java
- 為什麼我說OKR與KPI沒有本質區別?OKRKPI
- Go 中 make 與 new 的區別是什麼?Go
- Java技術分享:”==“和 equals 方法究竟有什麼區別?Java
- Java培訓教程:”==“和 equals 方法究竟有什麼區別?Java
- Rollup的本質是什麼?
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- equals與==的區別(詳解)
- javaSE中的==和equals的聯絡與區別Java
- JAVA中字串比較equals()和equalsIgnoreCase()的區別Java字串
- Python中/與//的區別是什麼?其如何使用?Python
- java字串“==”與“equals”的差異及與c#的區別Java字串C#
- 反向代理的本質是什麼?
- SCRM與CRM的區別是什麼?
- DMAIC與DMADV的區別是什麼?AI
- Linux中什麼是打包?與歸檔有什麼區別?Linux
- Java和Python是什麼?有什麼區別?JavaPython
- Linux系統中rpm與yum的區別是什麼?Linux
- Java(3)-POJO和Java bean的區別是什麼JavaPOJOBean
- 什麼是python?與PHP有什麼區別?PythonPHP
- 加密貨幣的本質是什麼?加密
- 敏捷SAFe的本質是什麼?-shalloway敏捷
- Python語言中/與//的區別是什麼?Python
- java集合【12】——— ArrayList,LinkedList,Vector的相同點與區別是什麼?Java
- Linux下su與su -命令的本質區別Linux
- python中類方法的區別是什麼Python
- Session是什麼?它與Cookie有什麼區別?SessionCookie
- iOS-block本質是什麼?iOSBloC