String:字符串常量,不可變,使用字符串拼接時是不同的2個空間笋籽。
StringBuffer:字符串變量,可變椭员,線程安全车海,字符串拼接直接在字符串后追加
StringBuilder:字符串變量,可變隘击,非線程安全侍芝,字符串拼接直接在字符串后追加
1研铆,StringBuilder執(zhí)行效率高于StringBuffer高于String
2,String是一個常量州叠,是不可變的棵红,所以對于每一次+=賦值都會創(chuàng)建一個新的對象;
StringBuffer和StringBuilder都是可變的留量,當進行字符串拼接時采用append方法窄赋,在原
來的基礎上進行追加,所以性能比String要高楼熄,又因為StringBuffer是線程安全的而StringBuilder
是線程非安全的忆绰,所以StringBuilder的效率高于StringBuffer。
3可岂,對于大數據量的字符串的拼接错敢,采用StringBuffer,StringBulider缕粹。
4稚茅,另一種說法,JDK1.6做了優(yōu)化平斩,通過String聲明的字符串在進行用“+”拼接時亚享,底層調用的
是StringBuffer,所以性能上基本上和后兩者沒有什么區(qū)別绘面。