String,記憶體剖析,常用方法_聽韓順平課筆記
阿新 • • 發佈:2021-09-17
1.String結構剖析
String類的理解和建立物件
- 使用Unicode編碼,一個字元佔兩個位元組
- String有很多構造器,構造器的過載
- String是final類,不能被其他的類繼承
- String有屬性private final char value[];用於存放字串內容,所以String的底層是個char陣列
- value[]是一個final屬性,是不可修改的(地址不可修改,指向新地址),但是單個字元內容是可以變化的
String的繼承關係:
- 實現了Serializable,說明String可以序列話,用於網路傳輸
- 實現了Comparable,說明String物件可以比較
String的地址不可變性的證明:
- 單獨的內容的改變時允許的
- 但不允許改變地址空間
String的八點特性:
2.String建立剖析
String的建立方式(兩種):
兩種建立String物件的區別:
兩種建立String物件的區別(記憶體分析圖):
練習題1:
練習題2:
3.String測試題1
練習題3:T,F,T,F
intern()方法解析:
練習題4:
4.String測試題2
練習題5:做錯了,答案:T,T,T,F
5.String物件特性1
習題1:
習題1解:
- 建立一個物件"hello"
- 在常量池中檢視是否有"haha"物件,沒有則建立,將s1指向"haha"
習題2:
習題2答案:
習題3:
習題3思路分析,追原始碼(重點):
習題3記憶體佈局圖:
驗證習題3答案:輸出false
- c指向堆中,d指向池中
習題3小結:
- 字串常量相加,看的是池
- 字串變數相加,看的是堆
6.String物件特性2
練習題1:
練習題2:
- 方法呼叫,開闢新棧,使用完畢後銷燬,
- char陣列在堆中,其中的內容被修改了
練習2記憶體分析:
7.String常用方法1
String是儲存字串常量的,每次跟新都需要重新開闢空間,效率較低
String類的常用方法一覽:
String類的常用方法應用例項1:
8.String常用方法2
String類的常用方法應用例項2:
9.String常用方法3
format方法詳解: