天天看點

String類

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 圖示

String類

3.string執行個體化的不同方式

3.1 方式說明

方式一:通過字面量定義的方式

方式二:通過new + 構造器的方式

3.2 代碼舉例

3.3 面試題

string s = new string("abc");方式建立對象,在記憶體中建立了幾個對象?

兩個:一個是堆空間中new結構,另一個是char[]對應的常量池中的資料:"abc"

3.4 圖示

String類

字元串拼接方式指派的對比

4.1 說明

1.常量與常量的拼接結果在常量池。且常量池中不會存在相同内容的常量。

2.隻要其中一個是變量,結果就在堆中。

3.如果拼接的結果調用intern()方法,傳回值就在常量池中

4.2 代碼舉例

5.常用方法:

注:indexof和lastindexof方法如果未找到都是傳回-1

替換:

比對:

切片: