String,StringBuffer,StringBuilder的性能比较
来源:互联网 发布:生日快乐软件在线制作 编辑:程序博客网 时间:2024/05/16 08:05
首先看多次相加
String 循环10000次,后两者是100000,累加次数是String的10倍
long start = System.currentTimeMillis();String result = "";for (int i = 0; i < 10000; i++) {String s1 = "hello";String s2 = "world";int s3 = 1000;result += s1;result += s2;result += s3;}System.out.println(System.currentTimeMillis() - start);start = System.currentTimeMillis();StringBuilder sb = new StringBuilder();for (int i = 0; i < 100000; i++) {String s1 = "hello";String s2 = "world";int s3 = 1000;sb.append(s1);sb.append(s2);sb.append(s3);}sb.toString();System.out.println(System.currentTimeMillis() - start);start = System.currentTimeMillis();StringBuffer sb2 = new StringBuffer();for (int i = 0; i < 100000; i++) {String s1 = "hello";String s2 = "world";int s3 = 1000;sb2.append(s1);sb2.append(s2);sb2.append(s3);}sb2.toString();System.out.println(System.currentTimeMillis() - start);
看下运行时间
结果是:75493633比较稳定
66873431
这是就先累加10次(内循环10次累加),但必须要循环执行多次(外循环)才能看出效果!这里循环10W次。,都一样。
long start = System.currentTimeMillis();String s = "hello world";for (int i = 0; i < 100000; i++) {String result = "";for(int j=0; j<10; j++){result += s;}}System.out.println(System.currentTimeMillis() - start);start = System.currentTimeMillis();for (int i = 0; i < 100000; i++) {StringBuilder sb = new StringBuilder();for(int j=0; j<10; j++){sb.append(s);}sb.toString();}System.out.println(System.currentTimeMillis() - start);start = System.currentTimeMillis();for (int i = 0; i < 100000; i++) {StringBuffer sb2 = new StringBuffer();for(int j=0; j<10; j++){sb2.append(s);}sb2.toString();}System.out.println(System.currentTimeMillis() - start);
结果为:
30488117
如果,把累加次数改为20次(内循环,j<20)
806164209
30次, 性能提升还是比较大的。(当然是在循环10W的基础上)
1397275483
想起来以来看过的一篇帖子,比较的JSP和PHP运算字符串的能力。
看结果就知道用的是String累加的!这种比较没意思!
- String,StringBuffer,StringBuilder的性能比较
- String,StringBuffer,StringBuilder性能比较
- String StringBuffer StringBuilder性能比较
- string stringBuffer stringBuilder性能比较
- Java的String与StringBuffer、StringBuilder的性能比较
- Java的String与StringBuffer、StringBuilder的性能比较
- String的"+"-StringBuilder-StringBuffer比较
- String、StringBuffer、StringBuilder的比较
- String、StringBuffer、StringBuilder的比较
- String、StringBuffer、StringBuilder区分和性能比较
- String & StringBuilder & StringBuffer 区别与性能比较
- String,StringBuffer,StringBuilder比较
- String StringBuffer StringBuilder比较
- String, StringBuffer, StringBuilder比较
- String,StringBuffer,StringBuilder比较
- String StringBuffer StringBuilder比较
- String,StringBuffer,StringBuilder比较
- String、StringBuilder、StringBuffer比较
- 家居调查:儿童家具为何不标明重金属含量
- pig中对元组不能直接使用聚集函数(如COUNT)
- vc中调用Com组件的方法详解 2011-11-28 10:01
- RMAN duplicate database
- Json-lib实现json,java对象,xml之间相互转换 .
- String,StringBuffer,StringBuilder的性能比较
- [转载]全局变量、extern/static/const区别与联系 2011-11-28 10:08
- LayoutSubviews何时会被调用
- coredump简介与coredump原因总结
- AS3.0的类型转换
- 内存地址转换与分段
- 1087Super Jumping! Jumping! Jumping(寻找和最大的升序子序列)
- 找回不小心删除掉的存储过程!
- 在COM中使用数组参数-SafeArray[转载/修改] 2011-11-29 15:02