如果需要大量的字符串拼接,建议使用JDK的:
-
java.lang.StringBuffer
-
java.lang.StringBuilder
StringBuffer底层
-
StringBuffer底层是byte数组,String底层其实也是byte数组但是被final修饰,不可变,而StringBuffer是可变的,如果容量不足将会进行扩容操作(数组copy)
如何优化StringBuffer的性能:
-
在创建StringBuffer的时候尽量给一个初始化容量,减少底层数组的扩容,估计一下,给一个合适的初始容量,如果太大也会导致内存空间浪费如果不给初始化容量默认为16
public class Test01 {
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer();
sb1.append("a");
sb1.append("b");
sb1.append(true);
sb1.append(100);
System.out.println(sb1);
System.out.println(sb1.reverse());
}
}