Java 平臺提供了兩種類型的字符串操作方式:String 和 StringBuffer/StringBuilder,它們都可以儲存和操作字符串,區別如下:
- String 是隻讀字符串,也就意味着 String 引用的字符串內容是不能被改變的。
String str = "abc";
str = "bcd";
注意:如上代碼,可能是很多初學者不明白的地方,看着字符串 str 明明是可以改變的,其實不然,str 僅僅是一個引用對象,它指向一個字符串對象“abc”。第 二行代碼的含義是讓 str 重新指向了一個新的字符串“bcd”對象,而“abc”對象並沒有任何改變,只不過該對象已經成爲一個不可及對象罷了。
-
StringBuffer/StringBuilder 表示的字符串對象可以直接進行修改。
-
StringBuilder 是 Java5 中引入的,它和 StringBuffer 的方法完全相同,區別在於它是在單線程環境下使用的,因爲它的所有方法都沒有被 synchronized 修飾,因此它的效率理論上也比 StringBuffer 要高。