5 回答

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超3個(gè)贊
1.Object類(lèi)里面,equal方法默認(rèn)是比較內(nèi)存地址。Object源碼:
?public?boolean?equals(Object?obj)?{ ????????return?(this?==?obj); ????}
String類(lèi)里面重寫(xiě)了equals方法,比較的是字符串的值。因此值一樣就返回true。
2.String類(lèi)是final類(lèi)型的,不能繼承,不能重寫(xiě)。不能重寫(xiě)的并不是equals方法,而是String這個(gè)類(lèi)本身就不能被繼承
public?final?class?String

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超1個(gè)贊
String類(lèi) ?內(nèi)部已經(jīng)重寫(xiě)了equals()方法,因而提示不能重寫(xiě)

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
String類(lèi) ?內(nèi)部已經(jīng)重寫(xiě)了equals()方法,因而提示不能重寫(xiě),只要兩個(gè)字符串的字符內(nèi)容相同,就返回true,不必關(guān)心內(nèi)存地址。而==就要保證內(nèi)存地址也得一樣。

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超2個(gè)贊
String?s2="imooc"; ? ? ? 與? ? ? ? String?s3=new?String("imooc");
這兩個(gè)是不一樣的,new 的存在就是分配地址用的,而后一種是放在常量池中的
你一下次再用這種方法去創(chuàng)建的時(shí)候,就會(huì)去常量池里面找,所以
String?s1="imooc"; ? 與? ? ? ? String?s2="imooc";
這兩個(gè)是相同的,指向常量池中的"imooc"
String?s3=new?String("imooc"); ? ?與 ? ?String?s4=new?String("imooc");
這兩個(gè)是不同的地址,盡管他們的內(nèi)容是一樣的。
就像有兩個(gè)人,他們的名字都是imooc,但是并不是一個(gè)人。
添加回答
舉報(bào)