使用StringBuilder而不是StringBuffer有什么特别之处

时间:2012-02-29 07:18:43

标签: java stringbuilder stringbuffer

  

可能重复:
  StringBuilder and StringBuffer in Java

我想知道StringBuilder和StringBuffer之间的区别。在StringBuffer中,它自动分配16个字符。当我们添加一个字符串“hello”时,它的容量增加到21.可以任何人澄清我的怀疑吗?

3 个答案:

答案 0 :(得分:6)

你看过Javadocs吗?

来自http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html

  

此类提供与StringBuffer兼容的API,但不保证同步。此类设计用作StringBuffer的替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)。在可能的情况下,建议首先使用此类优先于StringBuffer,因为在大多数实现中它会更快。

答案 1 :(得分:3)

主要区别在于,StringBuffer是线程安全的(所有方法都是同步的),但StringBuilder不是。但是如果你不需要线程安全,StringBuilder比StringBuffer.Use StringBuilder更快。

答案 2 :(得分:2)

StringBuffer是线程安全的(即,它的方法是同步的)。但是,每个应用程序都不需要这样做,它会使代码变慢。 StringBuilder本质上是没有同步的StringBuffer,因此速度更快。