String,StringBuilder性能对比

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()));

}

}

时间: 2024-11-05 00:05:55

String,StringBuilder性能对比的相关文章

String,StringBuilder性能对照

import java.util.Date; import java.util.UUID; /** * 測试String,StringBuilder性能,推断什么时候改用String,什么时候该用StringBuilder * 測试结果 * String              拼接測试,測试长度10000,測试字符串数组长度30,完毕时间721 StringBuilder 拼接測试,測试长度10000,測试字符串数组长度30,完毕时间315 String              拼接測试,

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

本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 我的理解 Demo下载 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 介绍   自己对String和StringBuilder的处理机制略懂,大胆的设想下两者的性能对比会出现什么样的令人意外的

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

看到网上有人已经做过对比,并且贴出了代码,然后我运行了之后发现跟我分析的结论差距很大.发现他的代码有个问题,UUID.randomUUID() 首次调用耗时会很高,这个耗时被计算给了String,这对String是不公平的. 原始代码参见:http://www.codes51.com/article/detail_99554.html 修改后的测试代码如下: import java.util.Date; import java.util.UUID; public class StringTest

(转)String StringBuilder StringBuffer 对比 总结得非常好

来源:http://blog.csdn.net/clam_clam/article/details/6831345 转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了.嘿嘿.... 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通

String StringBuilder StringBuffer 对比 总结得非常好

作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸裸的站在我们这些Java色狼面前了.嘿嘿.... 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却不是普通的类哦!!! [镜头1] String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hell

Java入门到精通——基础篇String StringBuffer StringBuilder性能PK

一.概述 字符串的处理在java中我们经常要用到java提供了三个类来提供对字符串的操作,String,StringBuffer,StringBuilder String:固定长 StringBuffer:不固定长线程安全 Stringbuilder:不固定长线程不安全 二.性能PK 1.创建超大字符串. 代码: public class StringOne { public static void main(String[] args) { String str=""; String

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比 在项目中需要使用http调用接口,实现了两套发送http请求的方法,一个是使用apache的httpclient提供的http链接池来发送http请求,另一个是使用java原生的HttpURLConnection来发送http请求,并对两者性能进行了对比. 使用httpclient中的链接池发送http请求 使用最新的4.5.2版httpclient进行实现.在maven中引入 <

C正则库做DNS域名验证时的性能对比

C正则库做DNS域名验证时的性能对比 本文对C的正则库regex和pcre在做域名验证的场景下做评测. 验证DNS域名的正则表达式为: "^[0-9a-zA-Z_-]+(\\.[0-9a-zA-Z_-]+)*(\\.[a-zA-Z]{2,}\\.)$" 对于正常DNS请求日志中的6177578条日志做正则验证处理. 1,pcre 评测所用的pcre的版本号是:7.8.3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2

两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)

本篇文章主要介绍了"两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)",主要涉及到两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)方面的内容,对于两款JSON类库Jackson与JSON-lib的性能对比(新增第三款测试)感兴趣的同学可以参考一下. 近日做一些性能优化工作,在挑选JSON类库时,发现除了一般常用的JSON-lib外,还有一款号称性能最快的JSON处理器Jackson,于是用上了刚学会的JMeter,对这两个类库进行