本章主要介紹String和CharSequence的區別,以及它們的API詳細使用方法。
轉載請註明出處:http://www.cnblogs.com/skywang12345/p/string01.html
更多內容請參考:
1. StringBuilder 詳解 (String系列之2)
2. StringBuffer 詳解 (String系列之3)
String 簡介
String 是java中的字符串,它繼承於CharSequence。
String類所包含的API接口非常多。爲了便於今後的使用,我對String的API進行了分類,並都給出的演示程序。
String 和 CharSequence 關係
String 繼承於CharSequence,也就是說String也是CharSequence類型。
CharSequence是一個接口,它只包括length(), charAt(int index), subSequence(int start, int end)這幾個API接口。除了String實現了CharSequence之外,StringBuffer和StringBuilder也實現了CharSequence接口。
需要說明的是,CharSequence就是字符序列,String, StringBuilder和StringBuffer本質上都是通過字符數組實現的!
StringBuilder 和 StringBuffer 的區別
StringBuilder 和 StringBuffer都是可變的字符序列。它們都繼承於AbstractStringBuilder,實現了CharSequence接口。
但是,StringBuilder是非線程安全的,而StringBuffer是線程安全的。
線程安全就是在多線程環境下也不會出現數據不一致,而非線程安全就有可能出現數據不一致的情況。
線程安全由於要確保數據的一致性,所以對資源的讀寫進行了控制,換句話說增加了系統開銷。所以在單線程環境中效率比非線程安全的效率要低些,但是如果線程間數據相關,需要保證讀寫順序,用線程安全模式
它們之間的關係圖如下:
更多關於“StringBuilder”的內容,請參考:http://www.cnblogs.com/skywang12345/p/string02.html
更多關於“StringBuffer”的內容,請參考 :http://www.cnblogs.com/skywang12345/p/string03.html
本章介紹StringBuilder以及它的API的詳細使用方法。
轉載請註明出處:http://www.cnblogs.com/skywang12345/p/string02.html
StringBuilder 簡介
StringBuilder 是一個可變的字符序列。它繼承於AbstractStringBuilder,實現了CharSequence接口。
StringBuffer 也是繼承於AbstractStringBuilder的子類;但是,StringBuilder和StringBuffer不同,前者是非線程安全的,後者是線程安全的。
StringBuilder 和 CharSequence之間的關係圖如下:
本章介紹StringBuffer以及它的API的詳細使用方法。
轉載請註明出處:http://www.cnblogs.com/skywang12345/p/string03.html
StringBuffer 簡介
StringBuffer 是一個線程安全的可變的字符序列。它繼承於AbstractStringBuilder,實現了CharSequence接口。
StringBuilder 也是繼承於AbstractStringBuilder的子類;但是,StringBuilder和StringBuffer不同,前者是非線程安全的,後者是線程安全的。
StringBuffer 和 CharSequence之間的關係圖如下: