Java中StringBuffer和StringBuilder的区别

区别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。
发布了1148 篇原创文章 · 获赞 1万+ · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/a1439775520/article/details/104312077