StringBuffers是线程安全的,这意味着它们具有同步的方法来控制访问,因此一次只有一个线程可以访问StringBuffer对象的同步代码。因此,在多个线程可能试图同时访问同一StringBuffer对象的多线程环境中,StringBuffer对象通常是安全的。
StringBuilder's访问未同步,因此不是线程安全的。通过不同步,StringBuilder的性能可以比StringBuffer更好。因此,如果您在单线程环境中工作,则使用StringBuilder而不是StringBuffer可能会提高性能。在诸如StringBuilder局部变量(即方法中的变量)之类的其他情况下也是如此,其中只有一个线程将访问StringBuilder对象。
所以,
StringBuilder因为
- 性能增益小。
- StringBuilder是StringBuffer类的1:1替代品。
- StringBuilder不是线程同步的,因此在大多数Java实现上表现更好
看一下这个 :
- 不要使用StringBuffer!
- StringBuffer与StringBuilder的性能比较



