首页 > 代码库 > String、StringBuffer、StringBuilder比较

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毫秒