StringBuffer和StringBuilder之间的主要区别是什么?在决定其中任何一项时是否存在性能问题?


当前回答

StringBuilder和StringBuffer之间没有基本区别,它们之间只有一些区别。在StringBuffer中,方法是同步的。这意味着一次只能有一个线程对它们进行操作。如果有多个线程,那么第二个线程将不得不等待第一个线程完成,第三个线程将必须等待第一个和第二个完成,依此类推。这使得进程非常缓慢,因此StringBuffer的性能很低。

另一方面,StringBuilder不同步。这意味着多个线程可以同时对同一StringBuilder对象进行操作。这使得过程非常快,因此StringBuilder的性能很高。

其他回答

更好地使用StringBuilder,因为它不是同步的,因此提供了更好的性能。StringBuilder是旧StringBuffer的替代品。

StringBuffer用于存储将要更改的字符串(字符串对象不能更改)。它会根据需要自动展开。相关类:String、CharSequence。

StringBuilder是在Java5中添加的。它在所有方面都与StringBuffer相同,只是它不同步,这意味着如果多个线程同时访问它,可能会出现问题。对于单线程程序,最常见的情况是,避免同步开销会使StringBuilder稍微快一些。

由于StringBuffer是同步的,因此需要额外的工作,因此基于性能,它比StringBuilder慢一点。

StringBuffer已同步,StringBuilder未同步。

StringBuffer和StringBuilder源之间的差异: