String、StringBuffer、StringBuilder的性能测试
2008-06-05 06:11
435 查看
个人理解
String为固定长度的不可变的字符串
StringBuilder为可变的,且提供个最好的性能,其代码如下
String为固定长度的不可变的字符串
StringBuilder为可变的,且提供个最好的性能,其代码如下
publicStringBuilderappend(inti){ super.append(i); returnthis; }
StringBuffer为可变的,且提供了同步安全的机制,代码如下publicsynchronizedStringBufferappend(inti){ super.append(i); returnthis; }
可以看到2个的区别就是StringBuffer是同步的synchronized
下面是3个性能测试代码
importjava.util.Map;
publicclassMyTest{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
testString();
testStringBuilder();
testStringBufer();
}
staticintNUMBER=10000;
publicstaticvoidtestString(){
longbegin=System.currentTimeMillis();
Stringstr="";
for(inti=1;i<NUMBER;i++){
str=str+i;
}
System.out.println("testString="+(System.currentTimeMillis()-begin));
}
publicstaticvoidtestStringBuilder(){
longbegin=System.currentTimeMillis();
StringBuilderb=newStringBuilder();
for(inti=1;i<NUMBER;i++){
b.append(i);
}
Stringstr=b.toString();
System.out.println("testStringBuilder="+(System.currentTimeMillis()-begin));
}
publicstaticvoidtestStringBufer(){
longbegin=System.currentTimeMillis();
StringBufferb=newStringBuffer();
for(inti=1;i<NUMBER;i++){
b.append(i);
}
Stringstr=b.toString();
System.out.println("testStringBufer="+(System.currentTimeMillis()-begin));
}
}
运行结果如下
testString=750 testStringBuilder=0 testStringBufer=0
可见String的操作是非常消耗资源的,而另外2个则性能优异。
对于StringBuilder和StringBuffer的对比,就没有必要了。他们的代码相同,只是缺少了同步而已。
结论
大多是情况下,StringBuilder是很好的选择
相关文章推荐
- String、StringBuffer、StringBuilder 性能测试
- 关于String和StringBuilder、StringBuffer的一个简单性能测试
- 关于String和StringBuilder、StringBuffer的一个简单性能测试
- String、StringBuffer、StringBuilder的性能测试
- Java中字符串操作类String、StringBuffer、StringBuilder区别及性能对比测试
- String,StringBuffer,StringBuilder性能比较,线程安全测试,源码解析。
- String,StringBuffer,StringBuilder区别及性能详解
- String,StringBuffer,StringBuilder性能分析
- Java的String与StringBuffer、StringBuilder的性能比较
- String,StringBuffer,StringBuilder性能比较
- String,StringBuffer,StringBuilder的性能比较
- String,StringBuffer和StringBuilder,看测试结果是否和你的想法吻合?
- string,stringBuffer,stringBuilder性能分析
- String,StringBuffer,StringBuilder三者性能
- String、StringBuffer和StringBuilder的性能对比
- String, StringBuffer 和Stringbuilder的区别以及性能差异
- java String和Stringbuffer性能测试结果
- String、StringBuffer、StringBuilder区分和性能比较
- Java的String与StringBuffer、StringBuilder的性能比较
- String,StringBuilder,StringBuffer的对比测试