在 Java 中,StringBuffer(以及 StringBuilder)的**容量(capacity)**指的是内部字符数组的大小,而不是字符串的长度(length)。合理设置容量可以减少扩容带来的性能开销。
StringBuffer sb = new StringBuffer(100);
StringBufferStringBuffer sb = new StringBuffer("hello");
"hello".length() + 16 = 21StringBuffer sb = new StringBuffer();
sb.ensureCapacity(200);
int capacity = sb.capacity(); // 当前容量
int length = sb.length(); // 当前字符数
Java 没有 setCapacity(),但可以通过:
sb.ensureCapacity(500);
sb.trimToSize(); // 仅 StringBuilder 有,StringBuffer 没有
⚠️ StringBuffer 没有 trimToSize()
当容量不足时,通常按以下规则扩容:
新容量 = 旧容量 * 2 + 2
StringBuffer sb = new StringBuffer(expectedLength);
StringBuffer 是线程安全的,StringBuilder 更快(非线程安全)如果你愿意,我也可以帮你:
String / StringBuffer / StringBuilder免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。