天天看點

java-StringBuilder

易變的字元序列這個類提供了一個相容的API使用 {@code StringBuffer},但不能保證同步。該類被設計為用于替換{@code StringBuffer} (一般情況下 一個單獨的線程處理字元串緩沖區) 可能的話,建議優先使用此類。

{@code StringBuilder} 主要操作是append和insert 方法。他們重載以便于接受任何類型的資料。每個有效将給定的資料轉換為字元串,然後追加或插入字元串到字元串生成器的字元。 {@code append}方法總是在結尾添加這些字元。{@code insert}

方法将字元添加到指定點

例如,如果{@代碼Z}引用字元串生成器對象 目前的内容是“{@代碼start }”

然後 方法調用 {@code z.append(“le”)} 會引起string builder 包含{@code startle}”,

然而, {@code z.insert(4, “le”)} 将會修改string builder 包含 {@code starlet}

總體來說 如果sb 引用了{@code StringBuilder},執行個體 {@code sb.append(x)} 有相同的影響和{@code sb.insert(sb.length(), x)}.

每個字元串生成器都具有容量。包含在字元串生成器的字元串序列的長度 不超過這個容量,沒有必要不必配置設定新的内部緩沖器。如果内部緩沖區溢出,則自動生成較大的緩沖區。

{@code StringBuilder} 的執行個體 不是安全的 給多線程使用

如果需要這樣的同步,那麼它是建議使用 {@link java.lang.StringBuffer}

除非另有說明,将{@代碼null }參數傳遞給構造函數,或該類中的方法将導緻 {@link NullPointerException}

AbstractStringBuilder

易變的字元序列

實作一個可修改的字元串。在任何時間點都包含一些字元的特定序列,但長度和内容可以通過某些方法調用來改變序列。

除非另有說明,将{@代碼null }參數傳遞給構造函數或該類中的方法将導緻

CharSequence

一個字元序列是一個可讀的char值序列。這個接口提供多種不同類型的統一、隻讀通路對許多種類的char序列。一個char值代表一個字元BMP或代理。

此接口沒有定義整體聯系{@link

* java.lang.Object#equals(java.lang.Object) equals} and {@link

* java.lang.Object#hashCode() hashCode} 方法。

CharSequence 比較兩個對象的結果未定義。

每個對象可以由不同類實作

不能保證每個類都能夠測試它的執行個體與其他的執行個體相等性

是以不宜使用CharSequence執行個體作為set的元素或者map的keys

Appendable

可以追加char序列和值的對象。這個可追加的接口必須由實作類實作 嘗試去接收格式化的output 從{@link

* java.util.Formatter}.

要追加的字元應該是有效的Unicode字元,

注意補充字元可以有多個16位的char值組成

對于多線程通路來說不一定是安全的。

線程安全是實作和擴充這個接口的類的責任

因為這個接口可以由現有的類實作不同的錯誤處理風格并不能保證錯誤将傳播到調用程式。