我正在寻找Java Class String Builder,并想知道为什么要添加它 额外的16个空元素尾随字符串以供后续构造函数
为什么StringBuilder可以随时更改其容量时需要额外的16个空元素 需要的?
提前致谢! :)
答案 0 :(得分:3)
16个字符是在任何StringBuilder
构造函数中分配的默认可用空间,除了您自己提供容量的那个(除了您已经提到的构造函数之外,没有参数的构造函数也分配16个字符的初始容量) )。
它允许您将一些字符附加到StringBuilder而无需增加容量。这种行为的原因很可能就是表现。
答案 1 :(得分:2)
StringBuilder
有一个capacity
,这是可用于插入字符的存储空间。如果您尝试添加更多,则需要分配新的存储空间以容纳这些空间。使用这些构造函数的新StringBuilder
构建添加了16个容量,允许您添加更多字符而无需重新分配。这是表演的事。
请注意,如果您知道它将包含多少个字符,则可以使用StringBuilder
构造函数创建具有指定容量的StringBuilder(int capacity)
。