美文网首页
StringBuffer和StringBuilder的区别

StringBuffer和StringBuilder的区别

作者: ccUpUp | 来源:发表于2019-02-20 10:29 被阅读0次

    平时很容易搞混这两个的区别,长得比较像,总结一下。

    区别1线程安全:

                StringBuffer是线程安全的,StringBuilder是线程是不安全的。因为StringBuffer的所有公开方法都用synchronized 来修饰,StringBuilder没有用synchronized 来修饰。下图分别用了StringBuffer的append的方法和StringBuilder的append的方法来举例:

             StringBuffer的代码片段:

                  StringBuilder的代码片段:

    区别2缓冲区:

                StringBuffer每次toString都会直接使用toStringCache值来构造一个字符串,而StringBuilder则每次都需要复制一次字节数组,再构造一个字符串。

    区别3性能:

                StringBuffer是线程安全的,所有方法都是同步的,StringBuilder是没有对方法加锁同步的,所以StringBuilder的性能要远大于StringBuffer

    总结:

                在使用场景为多线程时使用StringBuffer,如果是单线程则使用StringBuilder。

    相关文章

      网友评论

          本文标题:StringBuffer和StringBuilder的区别

          本文链接:https://www.haomeiwen.com/subject/iqpcyqtx.html