課程
/后端開發(fā)
/Java
/Java入門第一季(IDEA工具)升級(jí)版
引用類型“==”引用類型 ? 或者 引用類型“!=”引用類型,系統(tǒng)會(huì)怎么判斷true 或 false呢?
2015-05-03
源自:Java入門第一季(IDEA工具)升級(jí)版 3-4
正在回答
雖然沒看懂,但還是謝謝你!菜鳥,剛開始學(xué)這些東西,我現(xiàn)在的理解能力一時(shí)半會(huì)還理解不了你說的,謝謝了
==號(hào),他比較的是一個(gè)對(duì)象在內(nèi)存中的地址值,比如2個(gè)字符串對(duì)象
String?s1?=?new?String("str"); String?s2?=?new?String("str");
如果用==號(hào)比較,會(huì)返回false,因?yàn)閯?chuàng)建了兩個(gè)對(duì)象,他們?cè)趦?nèi)存中地址的位置是不一樣的。equals的情況比較復(fù)雜,它是java.lang.Object類中的一個(gè)方法。因?yàn)閖ava中所有的類都默認(rèn)繼承于Object,所以所有的類都有這個(gè)方法。在Object類源碼中是這樣寫的。
public?boolean?equals(Object?obj)?{ return?(this?==?obj); } 他同樣使用==號(hào)進(jìn)行內(nèi)存地址的比較。但是許多java類中都重寫了這個(gè)方法,比如String。 public?boolean?equals(Object?anObject)?{ if?(this?==?anObject)?{ ????return?true; } if?(anObject?instanceof?String)?{ ????String?anotherString?=?(String)anObject; ????int?n?=?count; ????if?(n?==?anotherString.count)?{ ?char?v1[]?=?value; ?char?v2[]?=?anotherString.value; ?int?i?=?offset; ?int?j?=?anotherString.offset; ?while?(n--?!=?0)?{ ?????if?(v1[i++]?!=?v2[j++]) ??return?false; ?} ?return?true; ????} } return?false; ???}
String里的方法,如果==號(hào)比較不相等,還會(huì)進(jìn)行一下值的比較。所以equals方法具體的作用要看當(dāng)前的那個(gè)類是如何實(shí)現(xiàn)重寫父類中該方法的。如果沒有重寫該方法,那么他和==號(hào)等價(jià)。
總被你們占用 提問者
舉報(bào)
0基礎(chǔ)萌新入門第一課,從Java環(huán)境搭建、工具使用、基礎(chǔ)語法開始
4 回答引用數(shù)據(jù)類型
1 回答引用數(shù)據(jù)類型
2 回答引用類型是啥呀
1 回答什么是引用類型啊
1 回答字符串是引用類型?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-05-03
雖然沒看懂,但還是謝謝你!菜鳥,剛開始學(xué)這些東西,我現(xiàn)在的理解能力一時(shí)半會(huì)還理解不了你說的,謝謝了
2015-05-03
==號(hào),他比較的是一個(gè)對(duì)象在內(nèi)存中的地址值,
比如2個(gè)字符串對(duì)象
如果用==號(hào)比較,會(huì)返回false,因?yàn)閯?chuàng)建了兩個(gè)對(duì)象,他們?cè)趦?nèi)存中地址的位置是不一樣的。
equals的情況比較復(fù)雜,它是java.lang.Object類中的一個(gè)方法。因?yàn)閖ava中所有的類都默認(rèn)繼承于Object,所以所有的類都有這個(gè)方法。
在Object類源碼中是這樣寫的。
String里的方法,如果==號(hào)比較不相等,還會(huì)進(jìn)行一下值的比較。
所以equals方法具體的作用要看當(dāng)前的那個(gè)類是如何實(shí)現(xiàn)重寫父類中該方法的。如果沒有重寫該方法,那么他和==號(hào)等價(jià)。