java.lang.string類的使用
1.概述
string:字元串,使用一對""引起來表示。 1.string聲明為final的,不可被繼承 2.string實作了serializable接口:表示字元串是支援序列化的。 實作了comparable接口:表示string可以比較大小 3.string内部定義了final char[] value用于存儲字元串資料 4.通過字面量的方式(差別于new給一個字元串指派,此時的字元串值聲明在字元串常量池中)。 5.字元串常量池中是不會存儲相同内容(使用string類的equals()比較,傳回true)的字元串的。
2.string的不可變性
2.1 說明
1.當對字元串重新指派時,需要重寫指定記憶體區域指派,不能使用原有的value進行指派。 2.當對現的字元串進行連接配接操作時,也需要重新指定記憶體區域指派,不能使用原有的value進行指派。 3.當調用string的replace()方法修改指定字元或字元串時,也需要重新指定記憶體區域指派,不能使用原有的value進行指派。 2.2 代碼舉例
2.3 圖示
3.string執行個體化的不同方式
3.1 方式說明
方式一:通過字面量定義的方式
方式二:通過new + 構造器的方式
3.2 代碼舉例
3.3 面試題
string s = new string("abc");方式建立對象,在記憶體中建立了幾個對象?
兩個:一個是堆空間中new結構,另一個是char[]對應的常量池中的資料:"abc"
3.4 圖示
字元串拼接方式指派的對比
4.1 說明
1.常量與常量的拼接結果在常量池。且常量池中不會存在相同内容的常量。
2.隻要其中一個是變量,結果就在堆中。
3.如果拼接的結果調用intern()方法,傳回值就在常量池中
4.2 代碼舉例
5.常用方法:
注:indexof和lastindexof方法如果未找到都是傳回-1
替換:
比對:
切片: