字符串拼接 | StringBuffer & StringBuilder
时间:2022-05-11 10:12
StringBuffer的使用
- 字符串创建之后是不能改变的,使用加号进行字符串拼接,不是在原来字符串的基础上拼接,是复制原来字符串和新的字符串进行拼接,组成一个新的字符串,这样字符串常量池就会多出很多字符串。
- 使用StringBuffer进行拼接,底层就是调用数组进行拼接的。在原来字符串上拼接,不会多出很多字符串。
实例:
public class StringBufferTest {
public static void main(String[] args) {
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append(12);
stringBuffer.append("abc");
stringBuffer.append(true);
System.out.println(stringBuffer);
}
}
StringBuffer的优化
- 在创建StringBuffer的时候尽可能给定一个初始化容量,最好减少底层数组的扩容次数。
实例:
public class StringBufferTest {
public static void main(String[] args) {
//初始化容量是16。
StringBuffer stringBuffer=new StringBuffer();
//默认的初始容量是16,现在自己设定初始容量为100
StringBuffer stringBuffer1=new StringBuffer(100);
}
}
StringBuilder的使用
- StringBuilder的使用和String相似,也是用来进行字符串拼接的。
- 两者的区别:StringBuffer中的方法有synchronized关键字修饰,StringBuffer中的方法没有。StringBuffer是线程安全的,StringBuilder是非线程安全的。