Java:String攒霹、StringBuffer 和 StringBuilder 的區(qū)別
String:字符串常量,字符串長度不可變扣泊。Java中String 是immutable(不可變)的近范。用于存放字符的數(shù)組被聲明為final的,因此只能賦值一次延蟹,不可再更改评矩。
StringBuffer:字符串變量(Synchronized,即線程安全)阱飘。如果要頻繁對字符串內(nèi)容進行修改斥杜,出于效率考慮最好使用 StringBuffer,如果想轉(zhuǎn)成 String 類型沥匈,可以調(diào)用 StringBuffer 的 toString() 方法蔗喂。Java.lang.StringBuffer 線程安全的可變字符序列。在任意時間點上它都包含某種特定的字符序列高帖,但通過某些方法調(diào)用可以改變該序列的長度和內(nèi)容缰儿。可將字符串緩沖區(qū)安全地用于多個線程散址。
StringBuilder:字符串變量(非線程安全)(不能同步訪問)乖阵。在內(nèi)部 StringBuilder 對象被當(dāng)作是一個包含字符序列的變長數(shù)組。
基本原則:
如果要操作少量的數(shù)據(jù)用 String 预麸;
單線程操作大量數(shù)據(jù)用StringBuilder 瞪浸;
多線程操作大量數(shù)據(jù),用StringBuffer吏祸。
StringBuffer 基本不用对蒲,基本所有都用StringBuilder