StringBuffer是线程安全的,这意味着它们具有同步方法来控制访问,因此一次只有一个线程可以访问StringBuffer对象的同步代码。
通常,在多个线程可能试图同时访问同一StringBuffer对象的多线程环境中,可以安全使用StringBuffer对象。
StringBuilder未同步,因此不是线程安全的。通过不同步,StringBuilder的性能可以比StringBuffer更好。
如果我们在单线程环境中工作,则使用StringBuilder而不是StringBuffer可能会提高性能。在其他情况下也是如此,例如StringBuilder局部变量,其中只有一个线程将访问StringBuilder对象。