- String,StringBuilder,StringBuffe
- String,StringBuilder,StringBuffe
- String,StringBuilder,StringBuffe
- String,StringBuilder,StringBuffe
- String,StringBuilder,StringBuffe
- String,StringBuilder,StringBuffe
- String、StringBuilder、StringBuffe
- String StringBuilder,StringBuffe
- String StringBuilder StringBuffe
- String,StringBuilder,StringBuffe
String 拼接字符串每次都会创建新的对象,速度最慢
StringBuilder 线程不安全,适合在单线程中拼接字符串
StringBuffer 线程安全,适合多线程中使用
我们在代码中测试下使用效率:
/**
* 用String拼接字符串
*/
public static void testStringJoint(){
String strFinal = "abcdefghijklmnopqrstovwxyz";
String a = "";
Random rand = new Random();
long startTime = System.currentTimeMillis();
for (int i = 0; i <10000; i++){
int randInt = rand.nextInt(10);
a += strFinal.substring(randInt, randInt + 14);
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
}
/**
* 用String拼接字符串
*/
public static void testStringBuilder(){
String strFinal = "abcdefghijklmnopqrstovwxyz";
StringBuilder sb = new StringBuilder();
Random rand = new Random();
long startTime = System.currentTimeMillis();
for (int i = 0; i <10000; i++){
int randInt = rand.nextInt(13);
sb.append(strFinal.substring(randInt, randInt + 14));
}
long endTime = System.currentTimeMillis();
System.out.println(endTime-startTime);
}
返回结果如下:
![](https://img.haomeiwen.com/i2198271/2f9c5913723e05bd.png)
循环次数为10000次的时候,用String拼接的时间是923ms,而StringBuilder的时间是1ms,这完全不在一个数量级了
网友评论