1. 程式人生 > >總結:String、StringBuffer、StringBuilder

總結:String、StringBuffer、StringBuilder

JAVA中String、StringBuffer、StringBuilder三者的區別?
String是字串常量、StringBuffer和StringBuilder的是字串變數。
(1)執行速度:StringBuilder>StringBuffer>String。
String是常量,String物件一旦建立之後該物件是不可更改的,其他兩個的物件都是變數,可以更改。String物件需要重新賦值的時候,原來的str就會被jvm的垃圾回收機制給回收了,也就是str並沒有做任何改變,符合物件一旦建立之後該物件是不可更改的。而StringBuilder和StringBuffer的物件是變數,對變數進行操作就是直接對該物件進行操作更改,而不進行建立和回收的操作。所以速度回相對快。
(2)StringBuilder是執行緒不安全,而StringBuffer是執行緒安全的。
StringBuffer中很多方法都是帶有synchronized關鍵字,而StringBuilder的方法則沒有關鍵字,如果是多執行緒環境那麼就使用StringBuffer,在單執行緒環境下建議使用速度更快的StringBuilder。

總結:
String:適合少量的字串操作的情況。
StringBuilder:適用於單執行緒環境下的大量字串操作。
StringBuffer:適用於多執行緒環境下進行大量字串操作。