前言
java中字符串一旦被定义,就无法修改。不使用StringBuffer和StringBuilder的方式修改字符串,都是在在内存中不停的开辟空间,这种方式非常影响性能
使用
- StringBuffer的使用
1.1使用StringBuffer创建对象
1.2append()方法拼接字符串
1.3toString转换字符串 - StringBuilder的使用
和StringBuffer一致,只是类名不同
比较
String,StrignBuffer,StringBuilder三者的区别
1.速度:StringBuilder>StrignBuffer>String;
2.线程安全:StringBuilder线程不安全,StrignBuffer线程安全
代码测试
String s="hello";
StringBuffer stringBuffer = new StringBuffer(s);
String s1 = stringBuffer.append("world!").append("你好世界!").toString();
System.out.println(s1);
结果
helloworld!你好世界!
Process finished with exit code 0
效率比较
String s="hello";
long start1 =System.currentTimeMillis();
for (int i=0;i<10000;i++){
s=s+" world!";
}
long end1 =System.currentTimeMillis();
System.out.println("String做10000次拼接:"+(end1-start1));
long start2 =System.currentTimeMillis();
StringBuffer stringBuffer = new StringBuffer(s);
for (int i=0;i<10000;i++){
stringBuffer.append(" world!");
}
long end2 =System.currentTimeMillis();
System.out.println("stringBuffer做10000次拼接:"+(end2-start2));
结果
在这里插入代码片String做10000次拼接:617毫秒
stringBuffer做10000次拼接:1毫秒
Process finished with exit code 0