JAVA中==與equals()用法的區別
在java中"=="是用來比較兩者儲存值的地址是否相同,比如A==B,就是比較A和B所儲存值的地址是否相同。
再來看看equals()的使用
在java中有這兩種情況存在:
1、使用object類中的equals()方法,這個是java中最初的equals()方法
如果你自定義一個類A,并且沒有去繼承其他的類,這時A中的equals()
的功能就是比較兩者儲存值的地址是否相同。因為所有的類都繼承object
類,而object類中有equals()這樣的方法
object類中的equals()方法的源代碼如下:
public boolean equals(object obj)
{
return this == obj;
}
從這段代碼中,我們可以再次確定,這種情況下的equals()方法的功能是
比較兩者儲存值的地址。
2、自定義一個類B,但B類繼承了c類,而c類中的equals()方法已經被重寫過
了,這種情形就需要具體情況具體分析了,但大部分被重寫的equals()方
法所擁有的功能就是比較兩者儲存值的內容是否相同,而不再是比較地址
了。比如:創建一個String對象 String str1 = new String("1");
String str2 = new String("1");
這時str1.equals(str2)比較的就是str1和str2中儲存值的內容是否相同
了,因為String類中的equals()就被重寫了,但這并不意味著所有被重寫
過的equals()方法都是用來比較內容的(因為目前我所遇到的只有這種情
況,如果大家有興趣可以去多研究研究
總結:"=="就只有一種用法,而equals()有兩種用法,只是所使用的環境不一樣而已。
posted on 2012-05-15 11:56 gps夢想 閱讀(719) 評論(0) 編輯 收藏 所屬分類: JAVA基礎