常見物件-String類的compareTo()方法的原始碼解析
package cn.itcast_06;
/*
* 如果我們看到問題了,看怎麼辦呢?
* 看原始碼。
*/
public class StringTest {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hel";
System.out.println(s1.compareTo(s2)); // 2
}
}
private final char value[]; 底層:字串會自動轉換為一個字元陣列。
String s1 = "hello";
String s2 = "hel";
System.out.println(s1.compareTo(s2)); // 2
public int compareTo(String anotherString) {
//this -- s1 -- "hello"
//anotherString -- s2 -- "hel"
//將s1轉成字元陣列,獲取字元陣列的長度
int len1 = value.length; //this.value.length--s1.toCharArray().length--5
//將s2轉成字元陣列,獲取字元陣列的長度
int len2 = anotherString.value.length; //s2.value.length -- s2.toCharArray().length--3
int lim = Math.min(len1, len2); //Math.min(5,3); -- lim=3;
char v1[] = value; //s1.toCharArray()
char v2[] = anotherString.value;
//char v1[] = {'h','e','l','l','o'};
//char v2[] = {'h','e','l'};
int k = 0;
while (k < lim) {
char c1 = v1[k]; //c1='h','e','l'
char c2 = v2[k]; //c2='h','e','l'
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2; //5-3=2;
}
相關文章
- 常見物件-String類物件
- 常見物件-String類-2物件
- 常見物件-String類-3物件
- 常見物件-String類-4物件
- JDK1.8原始碼解析(常見類)JDK原始碼
- 理解String的compareTo()方法返回值
- Java程式設計基礎13——常見物件_String類Java程式設計物件
- 常見物件-Object類物件Object
- 常見物件-Scanner類物件
- 常見物件-Arrays工具類物件
- 常見物件-StringBuffer和String的相互轉換物件
- js常見物件及方法JS物件
- Java原始碼之String的HashCode方法Java原始碼
- 常見物件-基本型別包裝類物件型別
- JDK原始碼閱讀-String類JDK原始碼
- Java面試鍊金系列 (1) | 關於String類的常見面試題剖析Java面試題
- Java String類的replaceAll方法Java
- 常見物件-字串的遍歷物件字串
- 集合的toString()方法原始碼解析原始碼
- Java compareTo() 方法Java
- 常見的四類HTTP狀態碼介紹HTTP
- ctf常見原始碼洩露原始碼
- 從一則案例解析js正則的String物件的replace方法使用技巧JS物件
- 文字加密:常見的密碼加密解密方法加密密碼解密
- Lucene原始碼解析--Field類原始碼
- Lucene原始碼解析--Lucene中的CloseableThreadLocal類原始碼thread
- 常見物件-Character物件
- JDK原始碼解析系列之String 之一JDK原始碼
- Java中String類的常用方法Java
- Java 的常見 API 與物件克隆)JavaAPI物件
- 常見物件-字串反轉的案例物件字串
- Binder的使用方法和原始碼解析原始碼
- Java Object類 和 String類 常見問答 6k字+總結JavaObject
- HttpServletRequest的常見方法HTTPServlet
- 常見的資料整合有哪些方法?有哪些分類?
- Javascript String物件方法JavaScript物件
- Array String物件的方法和屬性物件
- react 常見setState的原理解析React