二者区别,简而言之,在于StringBuffer内部实现了线程同步,而StringBuilder没有。
二者均继承自AbstractStringBuilder。
JDK源码中可以看得更清楚些。
=============================
从源码中可以看出,子类AbstractStringBuilder已经实现了所有的操作,StringBuffer和StringBuilder均是简单地作为一个wrapper,在每个方法中调用了父类的方法。
区别在于,StringBuffer的每个方法都加上了synchronized,而StringBuilder没有。
因此,StringBuilder相对来说,速度较快一些。
对于大部分的代码应用中,一般不会出现被多线程共享的StringBXXXXX对象,因此使用StringBuilder即可。尽在出现被多线程共享时,才需要使用StringBuffer。
StringBuffer与StringBuilder的区别,布布扣,bubuko.com
原文地址:http://blog.csdn.net/xuefeng0707/article/details/27213759