一尘不染

Java StringBuilder和StringBuffer之间的区别

java

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


阅读 338

收藏
2020-02-26

共2个答案

一尘不染

StringBuffer是同步的,StringBuilder不是。

2020-02-26
一尘不染

StringBuilder比StringBuffer因为不是更快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);
        }
    }
}

一个试运行给出的数字2241 ms为StringBufferVS 753 ms的StringBuilder。

2020-02-26