+和StringBuilder拼接对比
空间:
String[] str={….};//100个字符串
1.+
String s="";//1
for(int i=0;i<str.length;i++){
s+=str[i];//new StringBuilder(s).append(str[i]).toString();
//一次创建了3个对象
}
一共创建了301个对象
2.StringBuilder
StringBuilder sb=new StringBuilder();//1
for(int i=0;i<str.length;i++){
sb.append(str[i]);//一次创建1个对象
}
String s1=sb.toString();//1
一共创建102个对象
时间:
StringBuilder拼接(拼接次数较多的时候)效率更高。
总结:
综合时间和空间的角度,StringBuilder拼接(拼接次数较多的时候)效率更高。
引申:
StringBuilder是线程不安全(用于单线程,多线程不安全),效率高。
StringBuffer是线程安全(用于多线程),效率低。