【发布时间】:2012-03-18 16:43:55
【问题描述】:
我想知道StringBuilder和StringBuffer的区别。在 StringBuffer 中它会自动分配 16 个字符。当我们添加一个字符串“hello”时,它的容量增加到 21。谁能澄清我的疑问?
【问题讨论】:
-
-1 表示没有先阅读 Javadoc。
标签: java stringbuilder stringbuffer
我想知道StringBuilder和StringBuffer的区别。在 StringBuffer 中它会自动分配 16 个字符。当我们添加一个字符串“hello”时,它的容量增加到 21。谁能澄清我的疑问?
【问题讨论】:
标签: java stringbuilder stringbuffer
您看过 Javadocs 吗?
来自http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html:
该类提供与 StringBuffer 兼容的 API,但不保证同步。此类设计用于在单个线程正在使用字符串缓冲区的地方(通常情况下)用作 StringBuffer 的替代品。在可能的情况下,建议优先使用此类而不是 StringBuffer,因为它在大多数实现下会更快。
【讨论】:
主要区别在于,StringBuffer 是线程安全的(它的所有方法都是同步的),但StringBuilder 不是。但是 StringBuilder 比 StringBuffer 快。如果您不需要线程安全,请使用 StringBuilder。
【讨论】:
StringBuffer 是线程安全的(即,它的方法是同步的)。但是,并非每个应用程序都需要这样做,并且它会使代码比其他情况下要慢。 StringBuilder 本质上是没有同步的 StringBuffer,因此速度更快。
【讨论】: