Java中equals()和“==”區別


1.對於基礎數據類型,使用“=="比較值是否相等;

2.對於復合數據類型(類),使用equals()和“==”效果是一樣的,兩者比較的都是對象在內存中的存放地址(確切的說,是堆內存地址)。

3.對於String、Integer、Date等覆蓋了equals()方法的類型,“==”比較的是存放的內存地址。而equals()的結果則由覆蓋后的代碼決定。

4.string類型中,equals()比較的是兩字符串內容是否相同。如:

String s1 = "Hello";
String s2 = "Hello";
s1.equals(s2)返回true;
s1==s2返回true;
String s1 = "Hello";
String s2 = new String("Hello");
s1.equals(s2)返回的還是true;
但是s1==s2返回false;

★加點隨筆:看了Java的hashset,了解到hashset在查重的時候先用hashcode來縮小尋找范圍,最后還要用equals()來確定是否真的為相同的對象。  


免責聲明!

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



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