一、StringBuffer
1、声明
// 创建空字符串
StringBuffer sb = new StringBuffer();
// 创建一个变量存储字符串aaa
StringBuffer sb = new StringBuffer("aaa");
2、使用
sb.toString(); // 转化为String类型
sb.append("***"); // 追加字符串
二、StringBuilder
1、常用构造方法
2、常用方法
三、比较
- String长度不可变
- StringBuffer和StringBuilder长度可变
- StringBuffer线程安全,StringBuilder线程不安全(不能同步访问)
- StringBuilder比StringBuffer速度快(多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。)
例1:String与StringBuffer拼接耗时比较
public class TestStringBuffer {
public static void main(String[] args) {
String a = "";
long stringStart = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
a += i;
}
long stringEnd = System.currentTimeMillis();
long sum = stringEnd - stringStart;
System.out.println("String拼接耗费的时间:" + sum);
StringBuffer sb = new StringBuffer("");
System.out.println(sb.toString());
long stringbufferStart = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
sb.append(i);
}
long stringbufferEnd = System.currentTimeMillis();
long sumbuffer = stringbufferEnd - stringbufferStart;
System.out.println("StringBuffer拼接耗费的时间:"+sumbuffer);
}
}
运行结果
网友评论