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. 《机器学习实战》笔记——AdaBoost

    笔记见备注 # _*_ coding:utf-8 _*_ from numpy import * # 简单数据集 def loadSimpData(): datMat = matrix([[1., 2 ...

  2. django 修改urls.py 报错误:TypeError: view must be a callable or a list/tuple in the case of include().

    #coding=utf-8 from django.conf.urls import include,url from django.contrib import admin from blog im ...

  3. TOJ4483: Common Digit Pairs

    4483: Common Digit Pairs  Time Limit(Common/Java):3000MS/9000MS     Memory Limit:65536KByteTotal Sub ...

  4. 【bzoj2150】部落战争 有上下界最小流

    题目描述 lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土. A国是一个M*N的矩阵,其中某些地方是城镇,某些地方是高山深涧无人居住.lanzerb把 ...

  5. linux tomcat安装(二)

    安装步骤: 1.下载 Tomcat 下载 apache-tomcat-7.0.69.tar.gz(官方网址:http://tomcat.apache.org/) 2.解压 Tomcat 解压 apac ...

  6. python并发之concurrent.futures

    concurrent:并发 Python标准库为我们提供了threading和multiprocessing模块编写相应的多线程/多进程代码.从Python3.2开始,标准库为我们提供了concurr ...

  7. ecs01初始化node环境

    npm install 报错 > uglifyjs-webpack-plugin@ postinstall /opt/apps/iview-admin/node_modules/webpack/ ...

  8. ORA-12514: TNS:listener does not currently know of service requested in connect

    https://blog.csdn.net/mchdba/article/details/50166153

  9. 【ZJOI2017】树状数组

    题目描述 漆黑的晚上,九条可怜躺在床上辗转反侧.难以入眠的她想起了若干年前她的一次悲惨的 OI 比赛经历.那是一道基础的树状数组题. 给出一个长度为 $n$ 的数组 $A$,初始值都为 $0$,接下来 ...

  10. LINUX___的常用几个快捷键

    linux下:ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程.常用于终止正在运行的程序.ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程.ctrl- ...