Java中equals和==比的是什麼
1 . ==
int n = 3;
int m = 3;
System.out.println(n == m);
String str = new String("hello");
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1 == str2);
str1 = str;
str2 = str;
System.out.println(str1 == str2);
輸出結果 : true false true
對於八大基本型別==比較的是值所以n==m為true
對於引用型別String等比較的是物件在記憶體中的儲存地址,所以str1 == str2為false
最後一個為true,是因為str1和str2都指向了str指向的物件
2 . equals
equals方法是基類Object中的方法,因此對於所有的繼承於Object的類都會有該方法。
下面是Object類中equals方法的實現:
在Object類中,equals方法是用來比較兩個物件的引用是否相等,即是否指向同一個物件。
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1.equals(str2));
返回true
Why?
下面是String類中equals方法的具體實現:
可以看出,String類對equals方法進行了重寫,用來比較指向的字串物件所儲存的字串是否相等。
其他的一些類諸如Double,Date,Integer等,都對equals方法進行了重寫用來比較指向的物件所儲存的內容是否相等。
總結來說:
1.對於==,如果作用於基本資料型別,則比較儲存的值是否相等;如果作用於引用型別的變數,則比較的是所指向的物件的地址;
2.對於equals方法,注意:equals方法不能作用於基本資料型別的變數
如果沒有對equals方法進行重寫,則比較的是引用型別的變數所指向的物件的地址;
諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的物件的內容。
相關文章
- 深入探究Java中equals()和==的區別是什麼Java
- Java中equals與==的本質區別是什麼?Java
- C# 中的 == 和 equals()有什麼區別?C#
- java 中equals和==的區別Java
- Java中equals和==的區別Java
- Java物件之間的比較之equals和==Java物件
- "a".equals(b)和b.equals("a")有什麼區別
- java 中/**是什麼Java
- Java中 equals() 方法和 == 的區別Java
- 在java中“equals”和“==”的區別Java
- 【Java面試】Mybatis中#{}和${}的區別是什麼?Java面試MyBatis
- java為什麼要重寫hashCode和equals方法Java
- Java是什麼_Java是做什麼的?Java
- java中RMI是什麼Java
- java中@Inherited是什麼?Java
- java中@Retention是什麼?Java
- Java培訓教程:”==“和 equals 方法究竟有什麼區別?Java
- Java技術分享:”==“和 equals 方法究竟有什麼區別?Java
- java == 和equalsJava
- JAVA中字串比較equals()和equalsIgnoreCase()的區別Java字串
- java 中為什麼重寫 equals 後需要重寫 hashCodeJava
- java中lock介面是什麼Java
- java中死鎖是什麼Java
- 【RocketMq】什麼是,對比ActiveMq和KafkaMQKafka
- 是什麼讓Node.js比Java更快?Node.jsJava
- 【Java】equals 和 == 的區別Java
- 我天!xx.equals(null) 是什麼騷操作??Null
- Java中活鎖是什麼啊?Java
- Java中什麼是序列化?Java
- 為什麼Java中繼承是有害的Java中繼繼承
- Java中(==)與equals的區別Java
- 關於Java中的equals方法Java
- Java 和 JavaScript 是什麼關係?JavaScript
- Java(3)-POJO和Java bean的區別是什麼JavaPOJOBean
- Java和Python是什麼?有什麼區別?JavaPython
- 深入理解Java的==和equalsJava
- Java equals 和 == 完全解析Java
- Java equals和==完全解析Java