1.+号拼接

2.concat 拼接

3.join拼接

4.StringBuffer拼接

5.StringBuilder拼接

public class test {
    public static void main(String[] args) {
        String add = add();
        String concat = concat();
        String join = join();
        String buffer = buffer();
        String builder = builder();
    }
 
 
    public static String add() {
        String string = "";
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            string += "a";
        }
        long endTime = System.currentTimeMillis();
        System.out.println("+号拼接耗时:" + (endTime - startTime));
        return string;
    }
 
    public static String concat() {
        String string = "";
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            string = string.concat("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("concat拼接耗时:" + (endTime - startTime));
        return string;
    }
 
    public static String join() {
        String string = "";
        long startTime = System.currentTimeMillis();
        List<String> list = new ArrayList<String>();
        for (int i = 0; i < 1000000; i++) {
            list.add("a");
        }
        string = String.join(string, list);
        long endTime = System.currentTimeMillis();
        System.out.println("join拼接耗时:" + (endTime - startTime));
        return string;
    }
 
    public static String buffer() {
        StringBuffer sb = new StringBuffer();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            sb.append("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("StringBuffer拼接耗时:" + (endTime - startTime));
        return sb.toString();
    }
 
    public static String builder() {
        StringBuilder sb = new StringBuilder();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            sb.append("a");
        }
        long endTime = System.currentTimeMillis();
        System.out.println("StringBuilder拼接耗时:" + (endTime - startTime));
        return sb.toString();
    }
}

 执行效率

+号拼接耗时:6501
concat拼接耗时:1739
join拼接耗时:13
StringBuffer拼接耗时:2     (线程安全,多线程推荐)
StringBuilder拼接耗时:1    (线程不安全)