String 是不可变的,StringBuffer、StringBuilder是可变的
执行时间比较:
①
String s = "ja" +"va"
②
String s1="ja"; StringBuffer sb=new StringBuffer("va");
sb.append(s1);
③
String s1="ja";
String s2 = "va";
String s = s1 +s2
在编译阶段就能够确定的字符串常量,完全没有必要创建String或StringBuffer对象。直接使用字符串常量的"+"连接操作效率最高。 时间上 ①<③
StringBuffer对象的append效率要高于两个String对象的"+"连接操作。 时间上 ②<③
一般来说 执行时间上从快到慢 St
String 、StringBuffer是线程安全的,StringBuilder是线程不安全的 (StringBuffer的append操作用了synchronized)
String对象串联的效率最慢,单线程下字符串的串联用StringBuilder,多线程下字符串的串联用StrngBuffer
执行时间比较:
①
String s = "ja" +"va"
②
String s1="ja"; StringBuffer sb=new StringBuffer("va");
sb.append(s1);
③
String s1="ja";
String s2 = "va";
String s = s1 +s2
在编译阶段就能够确定的字符串常量,完全没有必要创建String或StringBuffer对象。直接使用字符串常量的"+"连接操作效率最高。 时间上 ①<③
StringBuffer对象的append效率要高于两个String对象的"+"连接操作。 时间上 ②<③
一般来说 执行时间上从快到慢 St