我想知道StringBuilder和StringBuffer的区别。在 StringBuffer 中它会自动分配 16 个字符。当我们添加一个字符串“hello”时,它的容量增加到 21。有人可以澄清我的疑问吗?
问问题
658 次
3 回答
6
你看过 Javadocs 吗?
从http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html:
此类提供与 StringBuffer 兼容的 API,但不保证同步。此类设计用于在单个线程正在使用字符串缓冲区的地方(通常情况下)用作 StringBuffer 的替代品。在可能的情况下,建议优先使用此类而不是 StringBuffer,因为它在大多数实现下会更快。
于 2012-02-29T07:21:02.793 回答
3
主要区别在于,StringBuffer是线程安全的(它的所有方法都是同步的),但StringBuilder不是。但是 StringBuilder 比 StringBuffer 快。如果您不需要线程安全,请使用 StringBuilder。
于 2012-02-29T07:24:43.087 回答
2
StringBuffer 是线程安全的(即,它的方法是同步的)。然而,这并不是每个应用程序都需要的,它会使代码比其他应用程序更慢。StringBuilder 本质上是没有同步的 StringBuffer,因此速度更快。
于 2012-02-29T07:22:40.567 回答