String、StringBuffer、StringBuilder比较

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)

执行速度:StringBuilder > StringBuffer > String 

 

例子:

 1 public class StringCompare {
 2     final static int time = 50000; //循环次数 
 3 
 4     public StringCompare(){
 5 
 6     }
 7     public void test(String string){
 8         long begin = System.currentTimeMillis();
 9         for(int i=0; i<time; i++){
10             string += "jd";
11         }
12         long over = System.currentTimeMillis();
13         System.out.println("操作"+string.getClass().getName()+"类型使用的时间为:"+(over-begin)+"毫秒");
14     }
15     public void test(StringBuffer stringBuffer){
16         long begin = System.currentTimeMillis();
17         for(int i=0; i<time; i++){
18             stringBuffer.append("jd");
19         }
20         long over = System.currentTimeMillis();
21         System.out.println("操作"+stringBuffer.getClass().getName()+"类型使用的时间为:"+(over-begin)+"毫秒");
22     }
23     public void test(StringBuilder stringBuilder){
24         long begin = System.currentTimeMillis();
25         for(int i=0; i<time; i++){
26             stringBuilder.append("jd");
27         }
28         long over = System.currentTimeMillis();
29         System.out.println("操作"+stringBuilder.getClass().getName()+"类型使用的时间为:"+(over-begin)+"毫秒");
30     }
31     public static void main(String[] args){
32         String string = "abcd";
33         StringBuffer stringBuffer = new StringBuffer("abcd");
34         StringBuilder stringBuilder = new StringBuilder("abcd");
35         StringCompare stringCompare = new StringCompare();
36         stringCompare.test(string);
37         stringCompare.test(stringBuffer);
38         stringCompare.test(stringBuilder);
39     }
40 } 

执行结果:

1 操作java.lang.String类型使用的时间为:1604毫秒
2 操作java.lang.StringBuffer类型使用的时间为:7毫秒
3 操作java.lang.StringBuilder类型使用的时间为:3毫秒
posted @ 2014-07-25 13:10  lqPROplus  阅读(198)  评论(0编辑  收藏  举报