| 7 | 1/1 | 返回列表 |
| 查看: 2028 | 回復(fù): 6 | ||
[求助]
求大神解釋java中String中的eqials方法的源代碼 已有2人參與
|
|
Sample Text 求解釋java中String中的eqials方法的源代碼 |
木蟲 (著名寫手)
銀蟲 (小有名氣)
|
this == anObject 這個(gè)地方是比較兩個(gè)引用指向的內(nèi)存地址是不是一致 如果一致的話直接return true 接下來 anObject instanceof String是判斷anObject是不是一個(gè)String類型的對(duì)象 如果不是的話直接return false 如果是的話會(huì)把兩個(gè)String類型的對(duì)象的值拿出來比較 你可以看到String.java這個(gè)類里邊定義了一個(gè)private final char value[];吧 明白???? |

|
int i = offset,是自身對(duì)象的起始位置,如果沒省略,應(yīng)該是int i = this.offset。String類中定義有私有的終態(tài)變量 /** The offset is the first index of the storage that is used. */ private final int offset; int n = count;獲得字符串的長(zhǎng)度,count是this.count的縮略 /** The count is the number of characters in the String. */ private final int count; 最后,需要提醒樓主,String類的底層實(shí)現(xiàn)是char類型的數(shù)組,構(gòu)造方法中傳入char類型數(shù)組,作為String的字面量,如String(char[] value),String(char[] value,int offset,int count)等。 /** The value is used for character storage. */ private final char value[]; 現(xiàn)在能看懂這段代碼了吧? |

|
詳細(xì)說明看我加的代碼注釋 1)this代表調(diào)用equals方法的實(shí)例。 2)equals方法,代表兩個(gè)意思,一個(gè)是完全相同的實(shí)例;另一個(gè)是內(nèi)容相同的實(shí)例; 3)逐個(gè)字符比較就不贅述了。 public boolean equals(Object anObject) {//傳入的對(duì)象,類似于泛型概念 if (this == anObject) {//這段代碼塊表示當(dāng)前實(shí)例和anObject是否引用同一地址空間,即完全相同 return true; } if (anObject instanceof String) {//這段代碼塊,對(duì)anObject使用反射成String類型,對(duì)this和anObject進(jìn)行每個(gè)單字符對(duì)比,若完全相等,則返回true。結(jié)合以前代碼塊,這處理的肯定不是同一地址空間的實(shí)例。 String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value; //這里char[]數(shù)組怎么可以直接賦值給他 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; } |
| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料/農(nóng)業(yè)專業(yè),07/08開頭均可,過線就行 +3 | 呵唔哦豁 2026-03-23 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 一志愿中南大學(xué)化學(xué)學(xué)碩0703總分337求調(diào)劑 +5 | niko- 2026-03-22 | 5/250 |
|
|
[考研] 一志愿重慶大學(xué)085700資源與環(huán)境,總分308求調(diào)劑 +7 | 墨墨漠 2026-03-23 | 8/400 |
|
|
[考研] 333求調(diào)劑 +3 | ALULU4408 2026-03-23 | 3/150 |
|
|
[考研] 276求調(diào)劑。有半年電池和半年高分子實(shí)習(xí)經(jīng)歷 +8 | 材料學(xué)257求調(diào)劑 2026-03-23 | 9/450 |
|
|
[考研] 石河子大學(xué)(211、雙一流)碩博研究生長(zhǎng)期招生公告 +3 | 李子目 2026-03-22 | 3/150 |
|
|
[考研] 311求調(diào)劑 +6 | 冬十三 2026-03-18 | 6/300 |
|
|
[考研] 一志愿中南化學(xué)(0703)總分337求調(diào)劑 +9 | niko- 2026-03-19 | 10/500 |
|
|
[考研] 260求調(diào)劑 +3 | 朱芷琳 2026-03-20 | 4/200 |
|
|
[考研] 一志愿華中科技大學(xué)071000,求調(diào)劑 +4 | 沿岸有貝殼6 2026-03-21 | 4/200 |
|
|
[考研] 286分人工智能專業(yè)請(qǐng)求調(diào)劑愿意跨考! +4 | lemonzzn 2026-03-17 | 8/400 |
|
|
[考研] 考研調(diào)劑 +3 | 呼呼?~+123456 2026-03-21 | 3/150 |
|
|
[考研] 材料與化工(0856)304求B區(qū)調(diào)劑 +3 | 邱gl 2026-03-20 | 7/350 |
|
|
[考研] 材料工程專碩 348分求調(diào)劑 +3 | 冬辭. 2026-03-17 | 5/250 |
|
|
[考研] 一志愿南大,0703化學(xué),分?jǐn)?shù)336,求調(diào)劑 +3 | 收到VS 2026-03-21 | 3/150 |
|
|
[考研] 材料 271求調(diào)劑 +5 | 展信悅_ 2026-03-21 | 5/250 |
|
|
[考研] 中南大學(xué)化學(xué)學(xué)碩337求調(diào)劑 +3 | niko- 2026-03-19 | 6/300 |
|
|
[考研] 0856調(diào)劑,是學(xué)校就去 +8 | sllhht 2026-03-19 | 9/450 |
|
|
[考研] 288求調(diào)劑,一志愿華南理工大學(xué)071005 +5 | ioodiiij 2026-03-17 | 5/250 |
|
|
[考研] 一志愿福大288有機(jī)化學(xué),求調(diào)劑 +3 | 小木蟲200408204 2026-03-18 | 3/150 |
|