1. 程式人生 > >java中單引號與雙引號的區別?hashcode()和equals()

java中單引號與雙引號的區別?hashcode()和equals()

單引號引的資料 是char型別的
雙引號引的資料 是String型別的
單引號只能引一個字元
而雙引號可以引0個及其以上

hashcode這個方法是用來鑑定2個物件是否相等的。

一般來講,equals這個方法是給使用者呼叫的,如果你想判斷2個物件是否相等,你可以重寫equals方法,然後在程式碼中呼叫,就可以判斷他們是否相等了。簡單來講,equals方法主要是用來判斷從表面上看或者從內容上看,2個物件是不是相等。舉個例子,有個學生類,屬性只有姓名和性別,那麼我們可以認為只要姓名和性別相等,那麼就說這2個物件是相等的。

hashcode方法一般使用者不會去呼叫,比如在hashmap中,由於key是不可以重複的,他在判斷key是不是重複的時候就判斷了hashcode這個方法,而且也用到了equals方法。這裡不可以重複是說equals和hashcode只要有一個不等就可以了!所以簡單來講,hashcode相當於是一個物件的編碼,就好像檔案中的md5,他和equals不同就在於他返回的是int型的,比較起來不直觀。我們一般在覆蓋equals的同時也要覆蓋hashcode,讓他們的邏輯一致。舉個例子,還是剛剛的例子,如果姓名和性別相等就算2個物件相等的話,那麼hashcode的方法也要返回姓名的hashcode值加上性別的hashcode值,這樣從邏輯上,他們就一致了。

要從物理上判斷2個物件是否相等,用==就可以了。