我想知道StringBuilder和StringBuffer之间的区别。在StringBuffer中,它自动分配16个字符。当我们添加一个字符串“hello”时,它的容量增加到21.可以任何人澄清我的怀疑吗?
答案 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,因此速度更快。