String
① 字符串是常量;它們的值在創建之后不能更改。
② Java 語言提供對字符串串聯符號("+")以及將其他對象轉換為字符串的特殊支持。字符串串聯是通過 StringBuilder(或 StringBuffer)類及其 append 方法實現的。字符串轉換是通過 toString 方法實現的。
StringBuffer
①
線程安全
的可變字符序列。類似于 String 的字符串緩沖區,但不能修改。
②StringBuffer
上的主要操作是append
和insert
方法
StringBuilder
① 一個可變的字符序列。但不保證同步。
②StringBuffer
的一個簡易替換,用在字符串緩沖區被單個線程使用的時候(這種情況很普遍),建議優先采用該類,因為在它比StringBuffer
要快。
以上內容源于jdk1.6 API文檔
總結
在實際開發中,由于String是不可變的,所以,為了避免內存資源的浪費以及從性能上考慮,所以建議
對于需要經常變動的字符串,采用StringBuffer或StringBuilder
,對于這二者的選擇,多線程操作使用StringBuffer,否則,優先使用StringBuilder
(處理速度更快),其實一般來說,基本都是用StringBuilder
對于字符串的拼接,例如:
String str = "a"+"b"+"c"
,我們應該直接使用String,因為經過JVM的處理,它相當于String str = "abc"
,而且,處理速度是比你自己創建StringBuffer一個一個append是要更加高效的。