java.lang.Object

-
public final class String
- extends Object
- implements Serializable, Comparable<String>, CharSequence
- extends Object
String
類代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作為此類的實例來實現。
字符串是常量;它們的值在創建之后不能改變。字符串緩沖區支持可變的字符串。因為 String 對象是不可變的,所以可以共享它們。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);String 類包括的方法有:檢查序列的單個字符;比較字符串;搜索字符串;提取子字符串;創建字符串副本,在該副本中,所有的字符都被轉換為大寫或小寫形式。大小寫映射基于Character
類指定的 Unicode Standard 版本。2.
public final class StringBuffer- extends Object
- implements Serializable, CharSequence
線程安全的可變字符序列。一個類似于
String
的字符串緩沖區,但不能修改。雖然在任意時間點上它都包含
某種特定的字符序列,但通過某些方法調用可以改變該序列的長度和內容。可將字符串緩沖區安全地用于多個線程。可以在必要時對這些方法進行同步,因此任意特定實例上的所有操作
就好像是以串行順序發生的,該順序與所涉及的每個線程進行的方法調用順序一致。
StringBuffer
上的主要操作是append
和insert
方法,可重載這些方法,以接受任意類型的數據。每個方法
都能有效地將給定的數據轉換成字符串,然后將該字符串的字符追加或插入到字符串緩沖區中。append
方法始
終將這些字符添加到緩沖區的末端;而insert
方法則在指定的點添加字符。例如,如果
z
引用一個當前內容為 "start
" 的字符串緩沖區對象,則此方法調用z.append("le")
會使字符
串緩沖區包含 "startle
",而z.insert(4, "le")
將更改字符串緩沖區,使之包含 "starlet
"。通常,如果 sb 引用
StringBuilder
的一個實例,則sb.append(x)
和sb.insert(sb.length(), x)
具有
相同的效果。當發生與源序列有關的操作(如源序列中的追加或插入操作)時,該類只在執行此操作的字符串緩沖區上而不是
在源上實現同步。每個字符串緩沖區都有一定的容量。只要字符串緩沖區所包含的字符序列的長度沒有超出此容量,就無需分配新
的內部緩沖區數組。如果內部緩沖區溢出,則此容量自動增大。從 JDK 5 開始,為該類補充了一個單個線程使
用的等價類,即StringBuilder
。與該類相比,通常應該優先使用 StringBuilder 類,因為它支持所有相同
的操作,但由于它不執行同步,所以速度更快。