关于String,StringBuffer,StringBuilder的区别

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)
效率:StringBuilder>StringBuffer>String
          注:如果是单线程序的话,优先考虑StringBuilder,如果是多线程的话,则考虑StringBuffer
案例如下:
 1 package com.seven.exercise.StringTest;
 2 
 3      import org.junit.Test;
 4 
 5      public class StringBufferWithStringBuilder {
 6 
 7      public void testString() {
 8         long start = System.currentTimeMillis();
 9         String str = null;
10         for (int i = 0; i < 20000; i++) {
11             str = str + i + ",";
12         }
13         System.out.println(System.currentTimeMillis() - start);
14     }
15 
16     public void testStringBuffer() {
17         long start = System.currentTimeMillis();
18 
19         StringBuffer sbuf = new StringBuffer();
20         for (int i = 0; i < 20000; i++) {
21             sbuf.append(i + ",");
22         }
23         System.out.println(System.currentTimeMillis() - start);
24     }
25 
26     public void testStringBulider() {
27         long start = System.currentTimeMillis();
28 
29         StringBuilder builder = new StringBuilder();
30         for (int i = 0; i < 20000; i++) {
31             builder.append(i + ",");
32         }
33         System.out.println(System.currentTimeMillis() - start);
34     }
35 
36     @Test
37     public void test(){
38         testString();
39         testStringBuffer();
40         testStringBulider();
41     }
42     
43 }

运行结果如下:

1217
9
6
原文地址:https://www.cnblogs.com/jbml-154312/p/7285615.html