import java.util.Date;

import java.util.UUID;





/**

 * 測试String,StringBuilder性能,推断什么时候改用String,什么时候该用StringBuilder

 * 測试结果

* String              拼接測试,測试长度10000,測试字符串数组长度30,完毕时间721

StringBuilder 拼接測试,測试长度10000,測试字符串数组长度30,完毕时间315

String              拼接測试,測试长度10000,測试字符串数组长度10,完毕时间301

StringBuilder 拼接測试,測试长度10000,測试字符串数组长度10,完毕时间124

String              拼接測试,測试长度10000,測试字符串数组长度5,完毕时间237

StringBuilder 拼接測试,測试长度10000,測试字符串数组长度5,完毕时间68

String              拼接測试,測试长度10000,測试字符串数组长度50,完毕时间1169

StringBuilder 拼接測试,測试长度10000,測试字符串数组长度50,完毕时间504

String     拼接測试,測试长度10000,測试字符串数组长度2,完毕时间188

StringBuilder 拼接測试,測试长度10000,測试字符串数组长度2,完毕时间31

String              拼接測试,測试长度20000,測试字符串数组长度2,完毕时间253

   StringBuilder 拼接測试,測试长度20000,測试字符串数组长度2,完毕时间59



 * 这几组至少是2倍以上的时间差距,

 * 当然小范围的拼接差点儿时间都是能够忽略不计的,可是你假设作为工具类或者大范围的拼接不妨用StringBuilder,哪怕仅仅是拼接两个字符串

 * @author JueYue

 * 

 */

public class StringTest {





public static void main(String[] args) {

int testLength = 10000;

String[] arr = new String[2];

Date start = new Date();

String str = "";

for (int i = 0; i < testLength; i++) {

str = "";

for (int j = 0; j < arr.length; j++) {

str += UUID.randomUUID().toString();

}

}

System.out.println("String 拼接測试,測试长度" + testLength + ",測试字符串数组长度"

+ arr.length + ",完毕时间"

+ (new Date().getTime() - start.getTime()));

start = new Date();

StringBuilder sb;

for (int i = 0; i < testLength; i++) {

sb = new StringBuilder();

for (int j = 0; j < arr.length; j++) {

sb.append(UUID.randomUUID().toString());

}

}

System.out.println("StringBuilder 拼接測试,測试长度" + testLength + ",測试字符串数组长度"

+ arr.length + ",完毕时间"

+ (new Date().getTime() - start.getTime()));

}





}

String,StringBuilder性能对照的更多相关文章

  1. 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...

  2. 从.Net版本演变看String和StringBuilder性能之争

    在C#中string关键字的映射实际上指向.NET基类System.String.System.String是一个功能非常强大且用途非常广泛的基类,所以我们在用C#string的时候实际就是在用.NE ...

  3. java中String StringBuilder StringBuffer比较和效率(性能)测试

    string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...

  4. java String、String.concat和StringBuilder性能对比

    看到网上有人已经做过对比,并且贴出了代码,然后我运行了之后发现跟我分析的结论差距很大.发现他的代码有个问题,UUID.randomUUID() 首次调用耗时会很高,这个耗时被计算给了String,这对 ...

  5. String, StringBuilder, StringBuffer问题

    1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...

  6. Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较

    字符串,就是一系列字符的集合. Java里面提供了String,StringBuffer和StringBuilder三个类来封装字符串,其中StringBuilder类是到jdk 1.5才新增的.字符 ...

  7. String字符串性能优化的几种方案

    String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升. 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优化构建的 ...

  8. 【Unity|C#】基础篇(17)——字符串处理(String/StringBuilder)

    [学习资料] <C#图解教程>(第25章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...

  9. String字符串性能优化的探究

    一.背景 String 对象是我们使用最频繁的一个对象类型,但它的性能问题却是最容易被忽略的.String 对象作为 Java 语言中重要的数据类型,是内存中占用空间最大的一个对象,高效地使用字符串, ...

随机推荐

  1. LiveScript 函数

    The LiveScript Book     The LiveScript Book 函数 定义函数是非常轻量级的. 1.(x, y) -> x + y2.3.-> # an empty ...

  2. [uiautomator篇][10] uiautomator进阶

    http://coderlin.coding.me/2016/07/02/Android-%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%87%AA%E5%8A%A8%E5%8C%96% ...

  3. [密钥权限过大错误]ssh “permissions are too open” error

    I had a problem with my mac where I couldn't save any kind of file on the disk anymore. I had to reb ...

  4. IO Streams:缓冲流

    我们迄今为止看到的大多数示例都使用无缓冲的I / O.这意味着每个读或写请求都由底层操作系统直接处理.这使程序效率变得很低,因为每个这样的请求经常触发磁盘访问,网络活动或一些相对昂贵的其他操作. 为了 ...

  5. 《Spark Python API 官方文档中文版》 之 pyspark.sql (四)

    摘要:在Spark开发中,由于需要用Python实现,发现API与Scala的略有不同,而Python API的中文资料相对很少.每次去查英文版API的说明相对比较慢,还是中文版比较容易get到所需, ...

  6. 【Luogu】P3574FAR_FarmCraft(树形贪心)

    题解链接 想了一个错的贪心爆零了,气死. 题目链接 #include<cstdio> #include<cctype> #include<cstring> #inc ...

  7. 【Luogu】P3203弹飞绵羊(分块)

    题目链接 正解是LCT但我不会呀蛤蛤蛤蛤蛤 (分块我也没想出来 把区间分成根n个块,每个块内记录两个东西,就是该位置弹多少次能够弹出这个块,以及该位置弹到最后弹出去了之后能够弹到哪里. 然后查询就一个 ...

  8. BZOJ1226 [SDOI2009]学校食堂Dining 【状压dp】

    题目 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数表示 ...

  9. Python Base One

    //this is my first day to study python, in order to review, every day i will make notes (2016/7/31) ...

  10. samba安装和配置

    windows和windows系统之间要实现文件共享是通过网络邻居实现linux和windows之间通过什么来实现文件共享呢?一.通过文件挂载(首先要制作ISO镜像文件,然后在用挂载命令)二.通过sa ...