Java中equals()和「==」區別

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

2.對於複合數據類型(類),使用equals()和「==」效果是同樣的,二者比較的都是對象在內存中的存放地址(確切的說,是堆內存地址)。code

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

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

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()來肯定是否真的爲相同的對象。  內存

相關文章
相關標籤/搜索