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

|
int i = offset,是自身對(duì)象的起始位置,如果沒(méi)省略,應(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ì)說(shuō)明看我加的代碼注釋 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ā)表 | |
|---|---|---|---|---|
|
[考研] 306求0703調(diào)劑一志愿華中師范 +9 | 紙魚ly 2026-03-21 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 一志愿吉大化學(xué)322求調(diào)劑 +4 | 17501029541 2026-03-23 | 6/300 |
|
|
[考研] 【考研調(diào)劑】化學(xué)專業(yè) 281分,一志愿四川大學(xué),誠(chéng)心求調(diào)劑 +12 | 吃吃吃才有意義 2026-03-19 | 13/650 |
|
|
[考研] 298-一志愿中國(guó)農(nóng)業(yè)大學(xué)-求調(diào)劑 +11 | 手機(jī)用戶 2026-03-17 | 12/600 |
|
|
[考研] 一志愿北京化工大學(xué) 070300 學(xué)碩 336分 求調(diào)劑 +7 | vv迷 2026-03-22 | 7/350 |
|
|
[考研] 材料專碩找調(diào)劑 +3 | 哈哈哈吼吼吼哈 2026-03-23 | 3/150 |
|
|
[考研] 335分 | 材料與化工專碩 | GPA 4.07 | 有科研經(jīng)歷 +4 | cccchenso 2026-03-23 | 4/200 |
|
|
[考研] 384求調(diào)劑 +3 | 子系博 2026-03-22 | 6/300 |
|
|
[考研] 333求調(diào)劑 +3 | ALULU4408 2026-03-23 | 3/150 |
|
|
[考研] 263求調(diào)劑 +6 | yqdszhdap- 2026-03-22 | 9/450 |
|
|
[考研]
求調(diào)劑材料學(xué)碩080500,總分289分
5+3
|
@taotao 2026-03-19 | 21/1050 |
|
|
[考研] 291求調(diào)劑 +5 | 孅華 2026-03-22 | 5/250 |
|
|
[考研] 070300,一志愿北航320求調(diào)劑 +3 | Jerry0216 2026-03-22 | 5/250 |
|
|
[考研] 一志愿西安交通大學(xué)材料工程專業(yè) 282分求調(diào)劑 +11 | 楓橋ZL 2026-03-18 | 13/650 |
|
|
[考研] 材料求調(diào)劑 +5 | @taotao 2026-03-21 | 5/250 |
|
|
[考研]
|
Grand777 2026-03-21 | 3/150 |
|
|
[考研] 297求調(diào)劑 +11 | 戲精丹丹丹 2026-03-17 | 12/600 |
|
|
[考研] 266求調(diào)劑 +3 | 哇呼哼呼哼 2026-03-20 | 3/150 |
|
|
[考研] 材料 336 求調(diào)劑 +3 | An@. 2026-03-18 | 4/200 |
|
|
[考研] 材料學(xué)求調(diào)劑 +4 | Stella_Yao 2026-03-20 | 4/200 |
|