大家都说StringBuilder在单线程下比StringBuffer效率高,但我的运行结果怎么相反呢??请大家测试一下,并指正。
我的程序如下:public class StringTest{ public static void main(String args[]){
long startTime1 = System.currentTimeMillis();
String text = "";
for(int i=0;i<10000;i++){
text+=i;
}
System.out.println(System.currentTimeMillis()-startTime1);
long startTime2 = System.currentTimeMillis();
StringBuffer textBuffer = new StringBuffer("");
for(int i=0;i<10000;i++){
textBuffer.append(i);
}
System.out.println((System.currentTimeMillis()-startTime2));
long startTime3 = System.currentTimeMillis();
StringBuilder textBuilder = new StringBuilder("");
for(int i=0;i<10000;i++){
textBuilder.append(i);
}
System.out.println((System.currentTimeMillis()-startTime3));
}}
结果:
3828
0
16
我的程序如下:public class StringTest{ public static void main(String args[]){
long startTime1 = System.currentTimeMillis();
String text = "";
for(int i=0;i<10000;i++){
text+=i;
}
System.out.println(System.currentTimeMillis()-startTime1);
long startTime2 = System.currentTimeMillis();
StringBuffer textBuffer = new StringBuffer("");
for(int i=0;i<10000;i++){
textBuffer.append(i);
}
System.out.println((System.currentTimeMillis()-startTime2));
long startTime3 = System.currentTimeMillis();
StringBuilder textBuilder = new StringBuilder("");
for(int i=0;i<10000;i++){
textBuilder.append(i);
}
System.out.println((System.currentTimeMillis()-startTime3));
}}
结果:
3828
0
16
解决方案 »
- 请问如何在linux下将word转为pdf
- 在linux里面的crontab运行一个java程序,java里面system.out.print输出到哪里去了
- 帮帮忙,简单sql怎么写?
- 我有3年java开发经验了,面对这个基础问题束手无策。在jdk1.5中,如何获得一个未声明泛型集合的泛型类型
- 我的bean构造函数里调用一个ini文件,在bean里测试没问题,但是在jsp里面调用bean,就说这个文件找不 到,这个INI文件在jsp调用时应该放
- 请教 applet 能跳到jsp页面吗
- 一个关于static 的问题
- 菜鸟问问关于JBuilder的问题
- 送分拉!!!!!!!!!!!小问题
- JAVA控制台输入问题
- 关于true 和false
- 求助
int max = 1000000; //如果内存足够大,可以改成 max = Integer.MAX_VALUE;
// long startTime1 = System.currentTimeMillis();
// String text = "";
// for(int i=0;i<10000;i++){
// text+=i; //这个就不用测了,大家都知道这种是效率最低的
// }
// System.out.println(System.currentTimeMillis()-startTime1);
long startTime2 = System.currentTimeMillis();
StringBuffer textBuffer = new StringBuffer("");
for(int i=0;i<max;i++){
textBuffer.append(i);
}
System.out.println((System.currentTimeMillis()-startTime2));
long startTime3 = System.currentTimeMillis();
StringBuilder textBuilder = new StringBuilder("");
for(int i=0;i<max;i++){
textBuilder.append(i);
}
System.out.println((System.currentTimeMillis()-startTime3));
}}