StringBuffer中的一些方法是同步的,而StringBuilder不是线程安全的 - 但速度更快。 原则上,使用StringBuilder,除非您有一个场景,其中StringBuilder由多个线程使用(这将是非常罕见的情况)。
从StringBuffer的javadoc中摘录:自JDK 5版本发布以来,这个类已经被一个等效的类替代,该类仅用于单个线程,即{@link StringBuilder}。通常应该使用StringBuilder类而不是StringBuffer类,因为它支持所有相同的操作,但速度更快,因为它不执行同步。基本上,StringBuffer可以同时被多个线程使用,因为它是同步的,但这也使它比只能被一个线程使用的StringBuilder慢一些。