java 早期平臺提供了兩個類:String 和 StringBuffer,它們可以儲存和操作字符串,即包含多個字 符的字符數據。這個 String 類提供了數值不可改變的字符串。而這個 StringBuffer 類提供的字符串 可以進行修改。
當你知道字符數據要改變的時候你就可以使用 StringBuffer。String 類是不可變 類,任何對 String 的改變都會引發新的 String 對象的生成;而 StringBuffer 則是可變類,任何對 它所指代的字符串的改變都不會產生新的對象。
StringBuilder 是后面引入的,它與 StringBuffer 類的區別在于,新引入的 StringBuilder 類不是線 程安全的,但其在單線程中的性能比 StringBuffer 高。 (有興趣的可以去讀下《Think in Java》描 述 HashTable 和 HashMap 區別的那部分章節比較熟悉的話,就是支持線程同步保證線程安全而導 致性能下降的問題)
典型地,你可以使用 StringBuffers 來動態構造字符數據。另外,String 實現了 equals 方法,new String(“abc”).equals(newString(“abc”)的結果為 true,而 StringBuffer 沒有實現 equals 方法,所以,newStringBuffer(“abc”).equals(newStringBuffer(“abc”)的結果為 false。
新聞熱點
疑難解答