更新時間:2020-05-13 15:03:07 來源:動力節點 瀏覽2270次
在java開發學習中所有類都直接或間接擴展java.lang.Object類。這個類定義了很多有用的方法,而且你可以根據需求來重寫這些方法。關于Java中Object類的一些疑惑,看完你就知道了
1、toString方法
toString方法的作用是返回對象的文本表示形式。Object類中的toString方法返回的字符串由對象所屬的類名和對象的十六進制形式哈希碼(由hashCode方法計算得到,本章節稍后會介紹)組成。這個默認的實現方式提供了對象的類型和標識兩個基本信息,但一般并沒什么用。
2、equals方法
如果要測試兩個不同的對象是否相等,必須使用equals方法。任何類都能覆蓋equals方法,定義專用的相等比較方式。Object.equals方法直接使用==運算符,只有兩個對象是同一個對象時,才判定二者相等。
3、hashCode方法
Java中的hashCode方法就是根據一定的規則將與對象相關的信息(比如對象的存儲地址,對象的字段等)映射成一個數值,這個數值稱作為散列值。如果集合中已經存在一萬條數據或者更多的數據,如果采用equals方法去逐一比較,效率必然是一個問題。
此時hashCode方法的作用就體現出來了,當集合要添加新的對象時,先調用這個對象的hashCode方法,得到對應的hashcode值,實際上在HashMap的具體實現中會用一個table保存已經存進去的對象的hashcode值,如果table中沒有該hashcode值,它就可以直接存進去,不用再進行任何比較了;
4、hashCode和equal方法
hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用來在散列存儲結構中確定對象的存儲地址的;如果兩個對象相同,就是適用于equals(java.lang.Object)方法,那么這兩個對象的hashCode一定要相同;如果對象的equals方法被重寫,那么對象的hashCode也盡量重寫,并且產生hashCode使用的對象,
5、Comparable::compareTo方法
如果一個類實現了Comparable接口,就可以比較一個實例是小于、大于還是等于另一個實例。這也表明,實現Comparable接口的類可以排序。因為compareTo方法不在Object類中聲明,所以由每個類自行決定實例能否排序。如果能排序就定義compareTo方法,實現實例排序的方式。compareTo方法返回一個int類型的值,這個值需要進一步說明。如果當前對象(this)小于傳入的對象,compareTo方法應該返回一個負數;如果兩個對象相等,應該返回0;如果當前對象大于傳入的對象,應該返回一個正數。
以上就是動力節點java培訓機構的小編針對“Java object類的理解,看完什么都懂了”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
Java技術相關教程
JavaObject類:http://m.dabaquan.cn/tutorial_java_advance/606.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習