java字符串拼接的几种方式
一、 + 方式
String str1="hello";
String str2="world";
String str=str1+str2;java
concat方式
当两个量都为String类型且值不为null时,能够用concat方式
String a="a";
String b="b";
String c= a.concat(b);
理论上,此时拼接效率应该最高,由于已经假定两个量都为字符串,作底层优化不须要额外判断或转换,而其余方式不管如何优化,都要先走到这一步。安全
append方式
当须要拼接至少三个量的时候,能够考虑使用StringBuffer#append()以免临时字符串的产生
StringBuffer buf=new StringBuffer()
buf.append("a");
if(someCondition){
buf.append("b");
}
buf.append("c");
String d=buf.toString();
当a,b,c拼接起来会很长时,能够给在构造器中传入一个合适的预估容量以减小因扩展缓冲空间而带来的性能开销。
StringBuffer buf=new StringBuffer(a.length()+b.length()+c.length());
JDK对外提供的一些涉及可append CharSequence的参数或返回值类型每每是StringBuffer类型,毕竟安全第一,而StringBuffer大多数状况(包括append操做)线程安全。
若不会出现多线程同时对一实例并发进行append操做,建议使用非线程安全的StringBuilder以得到更好性能多线程