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