首页 > 代码库 > StringBuffer与StringBuilder的区别

StringBuffer与StringBuilder的区别


二者区别,简而言之,在于StringBuffer内部实现了线程同步,而StringBuilder没有。

二者均继承自AbstractStringBuilder。



JDK源码中可以看得更清楚些。


=============================



从源码中可以看出,子类AbstractStringBuilder已经实现了所有的操作,StringBuffer和StringBuilder均是简单地作为一个wrapper,在每个方法中调用了父类的方法。

区别在于,StringBuffer的每个方法都加上了synchronized,而StringBuilder没有。


因此,StringBuilder相对来说,速度较快一些。


对于大部分的代码应用中,一般不会出现被多线程共享的StringBXXXXX对象,因此使用StringBuilder即可。尽在出现被多线程共享时,才需要使用StringBuffer。