Java的String与StringBuffer、StringBuilder的性能比较
2016-11-23 10:54
477 查看
1.先看下测试代码 测试代码如下: [java] view plain copy package com.gbicc.thread; public class StringTest { private void funBuffer() { String tempstr = "abcdefghijklmnopqrstuvwxyz"; int times = 1500000; long lstart2 = System.currentTimeMillis(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < times; i++) { sb.append(tempstr); } long lend2 = System.currentTimeMillis(); long time2 = (lend2 - lstart2); System.out.println(time2); } private void funBuilder() { String tempstr = "abcdefghijklmnopqrstuvwxyz"; int times = 1500000; long lstart2 = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < times; i++) { sb.append(tempstr); } long lend2 = System.currentTimeMillis(); long time2 = (lend2 - lstart2); System.out.println(time2); } private void funStr() { String tempstr = "abcdefghijklmnopqrstuvwxyz"; int times = 100; long lstart1 = System.currentTimeMillis(); String str = ""; for (int i = 0; i < times; i++) { str += tempstr; } long lend1 = System.currentTimeMillis(); long time = (lend1 - lstart1); System.out.println(time); } /** * @param args */ public static void main(String[] args) { StringTest test = new StringTest(); test.funBuilder(); test.funBuffer(); test.funStr(); } } 代码说明:代码里有3个函数,一个是测试String的,一个是测试StringBuffer的,一个是测试StringBuilder的,功能就是让24个英文字母相加。 测试的机器配置: 2.看下测试结果: 时间单位:毫秒 次数 String花费时间 StringBuffer花费时间 StringBuilder花费时间 1000 47 0~1 0~1 5000 1187 2 1 10000 5634 2 1 12000 8801 3 3 15000 16347 3 3 18000 27202 4 4 20000 35911 4 4 50000 ...... 12 12 100000 ....... 31 30 由此可见,当需要对字符串做修改的时候,如果改动频繁,次数太大,用StringBuffer是不二的选择。 但是,当次数操作1000000次时,OutOfMemoryError了。
相关文章推荐
- Java的String与StringBuffer、StringBuilder的性能比较
- String、StringBuffer、StringBuilder区分和性能比较
- Java学习札记14:一个比较String、StringBuffer和StringBuilder之间效率差别的简单例子
- JAVA回顾巩固之String、StringBuilder、StringBuffer结合源码比较
- Java基础回顾_String_StringBuffer_StringBuider性能比较
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- Java之String,StringBuffer,StringBuilder比较
- java中String、StringBuilder和StringBuffer效率的比较
- 朝花夕拾:Java中String,StringBuffer,StringBuilder使用方法以及异同比较
- JAVA StringBuilder StringBuffer String比较
- Java String StringBuffer StringBuilder比较
- String,StringBuffer,StringBuilder性能比较
- 【Java基础】Java常见几组概念的比较(String、StringBuilder、StringBuffer、HashMap、HashTable
- java基础:string与stringBuilder性能比较
- Java String、StringBuffer、StringBuilder比较
- String,StringBuffer,StringBuilder性能比较,线程安全测试,源码解析。
- 朝花夕拾:Java中String,StringBuffer,StringBuilder使用方法以及异同比较
- 探索JAVA之String、StringBuffer、StringBuilder的比较
- java中string.format与stringbuilder的性能比较
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较