String,StringBuffer,StringBuilder效率优先关系说明:

public class StringBufferWithStringBuilder {

    public static void testString() {
long start = System.currentTimeMillis();
String str = null;
for (int i = 0; i < 50000; i++) {
str = str + i + ",";
}
System.out.println("String耗时:"+(System.currentTimeMillis() - start));
} public static void testStringBuffer() {
long start = System.currentTimeMillis(); StringBuffer sbuf = new StringBuffer();
for (int i = 0; i < 50000; i++) {
sbuf.append(i + ",");
}
System.out.println("StringBuffer耗时:"+(System.currentTimeMillis() - start));
} public static void testStringBulider() {
long start = System.currentTimeMillis(); StringBuilder builder = new StringBuilder();
for (int i = 0; i < 50000; i++) {
builder.append(i + ",");
}
System.out.println("StringBuilder耗时:"+(System.currentTimeMillis() - start));
} public static void main(String[] args) {
testString();
testStringBuffer();
testStringBulider();
} }

  

  控制台输出结果:

String耗时:8253
StringBuffer耗时:9
StringBuilder耗时:8

Process finished with exit code 0

结论:可想而知,效率最高的是StringBuilder>StringBuffer>String

String,StringBuffer,StringBuilder效率优先关系说明的更多相关文章

  1. 关于String StringBuffer StringBuilder

    0. String对象的创建       1.关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world&qu ...

  2. String StringBuffer StringBuilder (转)

    转自:http://www.iteye.com/topic/522167 众所周知,String是由字符组成的串,在程序中使用频率很高.Java中的String是一个类,而并非基本数据类型. 不过她却 ...

  3. 【Java基础】String StringBuffer StringBuilder

    String String是不可变的 我们都知道String不是基本数据类型,而是一个对象,并且是final类型的,不可变的.(public final class String) 查看以下代码: S ...

  4. String,StringBuffer,StringBuilder的区别及其源码分析

    String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而 ...

  5. 转:String StringBuffer StringBuilder区别

    转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...

  6. java中 String StringBuffer StringBuilder的区别

    * String类是不可变类,只要对String进行修改,都会导致新的对象生成. * StringBuffer和StringBuilder都是可变类,任何对字符串的改变都不会产生新的对象. 在实际使用 ...

  7. String,StringBuffer,StringBuilder的区别

    public static void main(String[] args) { String str = new String("hello...."); StringBuffe ...

  8. [置顶] String StringBuffer StringBuilder的区别剖析

    这是一道很常见的面试题目,至少我遇到过String/StringBuffer/StringBuilder的区别:String是不可变的对象(final)类型,每一次对String对象的更改均是生成一个 ...

  9. Java学习笔记--String StringBuffer StringBuilder

    String StringBuffer StringBuilder String http://docs.oracle.com/javase/7/docs/api/ 中文: http://www.cn ...

随机推荐

  1. 子元素设置margin-top作用到了父元素

    子元素设置margin-top,父元素也受影响 解决办法:给父元素加个padding或border或overflow:hidden或父元素加前置内容生成 CSS中盒模型的理解

  2. SUSE 11 SP3 搭建weblogic服务

    环境的搭建和业务需求相关,仅供参考 环境: SUSE 11 SP3 安装步骤 创建一个weblogic组 创建一个用户名为weblogic的用户, 创建相关目录 上传jdk,脚本等 安装 创建用户及其 ...

  3. Scrapy处理200-300范围之外的响应代码

    HttpErrorMiddleware 类scrapy.spidermiddlewares.httperror.HttpErrorMiddleware 过滤掉不成功(错误)的HTTP响应,以便蜘蛛不必 ...

  4. 15.4 Task 异步匿名函数

    Func<int, Task<int>> func = async x => { Console.WriteLine("starting x={0}" ...

  5. layui 导出excel复杂表头

    众所周知 layui的导出功能很好用,但是今天我要给大家推荐一个更好用的 大家来到这里想必也是因为layui无法满足 [导出Excle复杂表头] 的业务需求而来,这里废话不多说但还是强调一点,如果你是 ...

  6. AtCoder ABC 070D - Transit Tree Path

    传送门:http://abc070.contest.atcoder.jp/tasks/abc070_d 本题是一个图论问题——树(Tree). 有一棵结点数目为n的无向树.第i条边连接结点ai与bi, ...

  7. 【ABCD组】Scrum meeting 5

    前言 第5次会议在6月17日由组长在教9 405召开. 主要对下一步的工作进行说明安排,时长90min. 主要内容 分配下阶段任务,争取在这阶段完成软件的设计阶段 任务分配 姓名 当前阶段任务 贡献时 ...

  8. javascript Prototype constructor的理解(转)

    讲JS的构造的,这个比较清晰,但并不表示一定正确. 这几天一直在思考这个东东,感觉比以前理解更深入了. http://blog.csdn.net/chunqiuwei/article/details/ ...

  9. asp.net常用容器

    autofac就是ioc的第三方的IOC容器 unity也是IOC容器 掌握这两个容器就可以了,非常简单

  10. sublime text 插件emmet快捷命令

    原文链接:http://www.17yaobai.com/?p=255 语法: 后代:> 缩写:nav>ul>li <nav> <ul> <li> ...