String,StringBuffer,StringBuilder拼接操作的效率对比
来源:互联网 发布:重庆网络口碑营销 编辑:程序博客网 时间:2024/04/30 04:28
有很多时候,会有大量的字符串的拼接操作,但是我们很多coder,尤其是刚入职场的年轻coder,使用的方式可能就是String str +=s;而且我翻我自己所参与的项目里面的以前很久的代码也有大量的这种写法,但是很少有人知道,这种写法在操作基数很大的时候效率还是很低下的。少说废话,先上代码吧。
当字符串拼接操作次数在1000的级别时,效率差异不是很大的。
public class TestClient {/** * @param args */public static void main(String[] args) throws Exception{// TODO Auto-generated method stubtestString();}private static void testString()throws Exception{///1.str+=s的方式。String str= "";String s ="a";long start = System.currentTimeMillis();for(int i=0; i < 1000;i++){str+=s;}long end = System.currentTimeMillis();System.out.println("String+=s耗时:"+(end-start)+"ms");///2.String.concat()方式long start1 = System.currentTimeMillis();String str1= "";for(int i=0; i < 1000;i++){str1.concat(s);}long end1 = System.currentTimeMillis();System.out.println("String.concat()耗时:"+(end1-start1)+"ms");///3.StringBuffer.append()方式long start2 = System.currentTimeMillis();StringBuffer str2= new StringBuffer();for(int i=0; i < 1000;i++){str2.append(s);}long end2 = System.currentTimeMillis();System.out.println("StringBuffer.append()耗时:"+(end2-start2)+"ms");////4.StringBuilder.append()方式long start3 = System.currentTimeMillis();StringBuilder str3= new StringBuilder();for(int i=0; i < 1000;i++){str3.append(s);}long end3 = System.currentTimeMillis();System.out.println("StringBuilder.append()耗时:"+(end3-start3) +"ms");///////////////////////////////////////////////////////}运行程序的结果:
String+=s耗时:3msString.concat()耗时:0msStringBuffer.append()耗时:0msStringBuilder.append()耗时:0ms
当操作的次数上升到10000的时候有如何呢?
String+=s耗时:71msString.concat()耗时:1msStringBuffer.append()耗时:1msStringBuilder.append()耗时:1ms
当操作上升到100000的时候有如何呢?
String+=s耗时:13250msString.concat()耗时:7msStringBuffer.append()耗时:4msStringBuilder.append()耗时:3ms
0 0
- String,StringBuffer,StringBuilder拼接操作的效率对比
- 拼接字符串的效率问题(String,StringBuffer,StringBuilder对比)
- java中String,StringBuffer,StringBuilder拼接效率对比
- java中String,StringBuffer,StringBuilder拼接效率对比
- String, StringBuffer, StringBuilder拼接字符串的执行效率比较
- StringBuffer的append拼接和String的+连接效率对比
- StringBuffer的append拼接和String的+连接效率对比
- String StringBuilder StringBuffer 对比
- String、StringBuffer、StringBuilder对比
- String StringBuilder StringBuffer 对比
- String StringBuilder StringBuffer 对比
- String StringBuilder StringBuffer 对比
- String/StringBuffer/StringBuilder对比
- String StringBuilder StringBuffer 对比
- String,StringBuffer,StringBuilder的效率问题
- String,StringBuffer,StringBuilder,StringWriter的效率差
- String,StringBuffer,StringBuilder的效率区别
- string stringbuffer stringbuilder的执行效率
- 什么是单播、多播和广播
- Dalvik VM 与 art 的区别
- C语言排序(7)___修栅栏
- 深圳CMMI全球会议
- uva534
- String,StringBuffer,StringBuilder拼接操作的效率对比
- regex_match 函数 完全匹配
- linux运行级别
- 对象的深度复制
- Hdu 5052 Yaoge’s maximum profit 动态树 LCT link-cut tree
- 在Unity3D中使用ScriptableObject脚本对象化进行序列化
- LuaJava学习笔记[1]初探Lua
- OpenCL嵌入式图像处理
- Erlang学习三