5 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個贊
看書的時(shí)候不仔細(xì),弄清楚了;String
重寫了 hashCode
方法,其 hashCode
值是由內(nèi)容決定的,而不是地址決定的

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個贊

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個贊
hashCode 和 == 是不一樣的。 ==比較的是內(nèi)存地址, 而hashCode是根據(jù)實(shí)例變量計(jì)算出來的。
你使用了new創(chuàng)建了兩個String實(shí)例(new 關(guān)鍵字是會開辟新內(nèi)存空間的),而不是直接引用string池中的“hello”,下面是此構(gòu)造器的源代碼。
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
而String的hash計(jì)算方法是根據(jù)上述代碼中的value和hash。

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個贊

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個贊
添加回答
舉報(bào)