java中string Java對(duì)象的引用中存放的到底是對(duì)象的首地址還是散列碼?
Java對(duì)象的引用中存放的到底是對(duì)象的首地址還是散列碼?Java對(duì)象有一個(gè)名為hashcode的屬性,它是object的屬性,所有對(duì)象都從object類繼承。也就是說(shuō),一個(gè)Java對(duì)象有這個(gè)值這個(gè)值有
Java對(duì)象的引用中存放的到底是對(duì)象的首地址還是散列碼?
Java對(duì)象有一個(gè)名為hashcode的屬性,它是object的屬性,所有對(duì)象都從object類繼承。也就是說(shuō),一個(gè)Java對(duì)象有這個(gè)值
這個(gè)值有什么用?此值主要用于標(biāo)識(shí)對(duì)象的唯一性。例如,您有一個(gè)名為class a的類和兩個(gè)實(shí)例化的對(duì)象a a=newa()a B=newa(),如果您想比較a和B是否是一個(gè)對(duì)象?如何比較?您需要調(diào)用equals方法。默認(rèn)情況下,equals方法通過(guò)hashcode的值進(jìn)行比較。那么equals方法何時(shí)返回true?默認(rèn)情況下,只有當(dāng)兩個(gè)比較對(duì)象(這里是a和b)是一個(gè)對(duì)象時(shí),一個(gè)對(duì)象才是一個(gè)地址空間引用的Java對(duì)象實(shí)際上是對(duì)JVM內(nèi)存中對(duì)象的引用
并且這個(gè)哈希代碼存儲(chǔ)當(dāng)前變量引用的對(duì)象的地址
!希望您能理解。記住從一個(gè)例子中推斷,這樣你就能得到更多。希望對(duì)你有幫助