StringBuilder和StringBuffer之间的区别

2022-08-31 01:26:30

和 之间的主要区别是什么?在决定其中任何一个时,是否存在任何性能问题?StringBufferStringBuilder


答案 1

StringBuffer是同步的,StringBuilder不是。


答案 2

StringBuilderStringBuffer更快,因为它不是。synchronized

下面是一个简单的基准测试:

public class Main {
    public static void main(String[] args) {
        int N = 77777777;
        long t;

        {
            StringBuffer sb = new StringBuffer();
            t = System.currentTimeMillis();
            for (int i = N; i --> 0 ;) {
                sb.append("");
            }
            System.out.println(System.currentTimeMillis() - t);
        }

        {
            StringBuilder sb = new StringBuilder();
            t = System.currentTimeMillis();
            for (int i = N; i > 0 ; i--) {
                sb.append("");
            }
            System.out.println(System.currentTimeMillis() - t);
        }
    }
}

测试运行给出 for 与 for 的编号。2241 msStringBuffer753 msStringBuilder


推荐