【面試】==和equals的區別


相信這個簡單的問題實際上卻很少有人真正的去了解過吧,其實小編也是最近遇到了才展開了初步研究的。若是有敘述得不准確的歡迎親親為小編提出糾正。(以下言論為引用參考)

①兩者的區別

== 為運算符

equal 為String數據類型的比較方法.equal()

②兩者的比較范圍

一方面是基礎數據類型(例如 int a = 1),== 與 equal 都是作用於比較對象內容(堆)是否相同。

另一方面則是引用對象類型(例如 int a = new  int(1)), == 與 equal 都是作用於比較對象內存地址(棧)是否相同。

③需要注意的是

1.equal在源碼中的實現為一下存在形式,可以被重寫

public boolean equals(Object obj) {
return (this == obj);
}

 2.相同內容的對象地址不一定相同,但相相同地址的對象內容一定相同。

 


免責聲明!

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



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