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