Stringbuffer 和 Stringbuilder 的区别是什么?
发布于 2022-09-20 23:33:26
关注者
0
被浏览
28
5 个回答
-
都继成了AbstractStringBuilder这个抽象类,实现了CharSequence接口 ```Java public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence ```
-
StringBuffer类中的方法加了synchronized锁,StringBuilder类中方法没有加锁,所以StringBuffer线程安全,StringBuilder线程不安全; 因为加锁处理会降低性能力,所以StringBuffer比StringBuilder性能低。
-
> 这道题一共有三个角度,面试时要准确的说出来才可以,这种基础题目要不折不扣的刻在心里。 **1.可变性** 一般都与String进行对比,因为String是不可变的,但是StringBuffer和StringBuilder是可变的。 **2.线程安全性** StringBuffer是线程安全的,原理是StringBuffer对内部方法加了Synchronize同步锁。 StringBuilder是线程不安全的。 **3.性能** StringBuilder的性能比StringBuffer高,因为StringBuilder没有同步锁,所以性能要好一些。
-
Stringbuffer线程安全,Stringbuilder线程不安全,Stringbuilder效率更快,因为它不需要加锁,不具备多线程安全,相对来说Stringbuffer就效率慢一些
-
你在代码中点开它们的append方法,你会看到stringbuffer的方法前面用的synchronized方法修饰的,而Stringbuilder是没有的。这就是本质区别。一个,线程安全,一个线程不安全。