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()));
}
}
String,StringBuilder性能对照的更多相关文章
- 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...
- 从.Net版本演变看String和StringBuilder性能之争
在C#中string关键字的映射实际上指向.NET基类System.String.System.String是一个功能非常强大且用途非常广泛的基类,所以我们在用C#string的时候实际就是在用.NE ...
- java中String StringBuilder StringBuffer比较和效率(性能)测试
string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...
- java String、String.concat和StringBuilder性能对比
看到网上有人已经做过对比,并且贴出了代码,然后我运行了之后发现跟我分析的结论差距很大.发现他的代码有个问题,UUID.randomUUID() 首次调用耗时会很高,这个耗时被计算给了String,这对 ...
- String, StringBuilder, StringBuffer问题
1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
字符串,就是一系列字符的集合. Java里面提供了String,StringBuffer和StringBuilder三个类来封装字符串,其中StringBuilder类是到jdk 1.5才新增的.字符 ...
- String字符串性能优化的几种方案
String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升. 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优化构建的 ...
- 【Unity|C#】基础篇(17)——字符串处理(String/StringBuilder)
[学习资料] <C#图解教程>(第25章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu. ...
- String字符串性能优化的探究
一.背景 String 对象是我们使用最频繁的一个对象类型,但它的性能问题却是最容易被忽略的.String 对象作为 Java 语言中重要的数据类型,是内存中占用空间最大的一个对象,高效地使用字符串, ...
随机推荐
- [已解决]使用 apt-get update 命令提示 ...中被配置了多次
报错:W: 目标 Sources (main/source/Sources) 在 /etc/apt/sources.list:2 和 /etc/apt/sources.list:7 中被配置了多次 v ...
- pip安装超时,更换国内镜像源安装
pip安装超时问题 pip install --index 源地址 安装包 常用镜像源地址: http://pypi.douban.com/ 豆瓣 http://pypi.mirrors.ustc.e ...
- Map容器——TreeMap及常用API,Comparator和Comparable接口
TreeMap及常用API ① TreeMap类通过使用红黑树实现Map接口; ② TreeMap提供按排序顺序存储键/值对的有效手段,同时允许快速检索; ③ 不像散列(HashMap), ...
- 再谈 Go 语言在前端的应用前景
12 月 23 日,七牛云 CEO & ECUG 社区发起人许式伟先生在 ECUG Con 2018 现场为大家带来了主题为<再谈 Go 语言在前端的应用前景>的内容分享. 本文是 ...
- [SCOI2016] 背单词 (Trie 树,贪心)
题目链接 大致题意 给你 \(n\) 个字符串, 要求你给出最小的代价. 对于每个字符串: 1.如果它的后缀在它之后,那么代价为 \(n^2\). 2.如果一个字符串没有后缀,那么代价为 \(x\), ...
- java面试题之谈谈你对java的理解
平台无关性:一处编译到处运行 GC:不用像c++那样手动释放堆内容 语言特性:泛型.反射.lamda表达式 面向对象:封装.继承.多态 类库:集合.并发库.网络库.IO库 异常处理
- ObjectDataSource配置数据源的时候,选择业务对象下拉菜单没有任何东西
原文发布时间为:2008-08-03 -- 来源于本人的百度文章 [由搬家工具导入] 问题:在App_Code这个文件夹中添加了一个类,然后保存,但是在ObjectDataSource配置数据源的时候 ...
- C# 获取当前目录上一级目录
string path="D:\AA\BB\CC"; Directory.SetCurrentDirectory(Directory.GetParent(path).FullNam ...
- NERDTree
What's NERDTree : A tree explorer plugin for vim. Install : Using Vundle on .vimrc " for ...
- 使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆
使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法. 首先在 IDEA 的 Module 所在硬盘 ...