Object類是所有類的父類
主要有以下方法:
① equals(): 方法內部判斷兩個對象是否==相等,也就是判斷對象的地址是否相等,如果相等那麼hashcode一定相等。這個方法可以被重寫,String重寫了這個方法,String的equals()方法判斷的是兩個字符串的值知否相等。
②hashCode(): 該方法爲本地方法,返回的是該對象的hashCode值,hashcode是jdk根據對象的地址或者字符串或者數字算出來的int類型的數值,hashcode值相等,equeals不一定相等,因爲hashcode值並不一定是內存地址。HashMap中的put方法是給HashMap添加新的元素,會先調用hashCode()方法獲取要添加元素的hashcode值,然後查看table中是否存在該hashcode值,若存在則調用equals()方法確定是否存在該元素,若存在,則更信value值,若不存在則直接添加。從這裏可以看出來,hashcode的存在,是爲了減少equals的調用,從而提高程序的效率。
★equals相等,hashcode必須相等。
★hashcode相等,equals不一定相等。
★根據以上兩條準則,所以重寫equals()方法時需要重寫hashcode()方法。
★只要equals比較操作用到的信息沒變,那麼對同一個對象調用多次,hashcode必須始終如一的返回同一個整數。如果對象中的數據易變,則在重寫equals和hashcode方法的時候不要依賴該數據。
http://www.cnblogs.com/dolphin0520/p/3681042.html
③toString(): 返回對象的字符串格式:類名@哈希碼值,一般類都會將他重寫。
④getClass(): 本地方法,返回一個運行時類。
⑤clone(): 克隆,複製一個新的對象並返回。
⑥finalize(): 垃圾回收器認爲該對象是垃圾對象時會調用該方法,子類可以通過重寫該方法來達到資源釋放的目的。任何對象該方法只會被調用一次。
⑦notify(): 本地方法,喚醒一個當前對象監視上等待的線程。
⑧notifyAll(): 本地方法,喚醒當前對象監視上所有等待的線程。
⑨wait(): 調用該方法會出現中斷異常,需捕獲。