java中的StringBuffer/StringBuilder大小

nam*_*ked 4 java stringbuilder buffer stringbuffer

所有,

为什么建议将StringBuffer/ StringBuilderobject的大小初始化为2 ^ {1 ... n}的大小(尽管通常它将> 64).这样做会有什么优势/优化?

Osc*_*mez 7

建议是因为,默认情况下,构造函数将使用16大小初始化它,并且每当超过此容量时,它将加倍并创建一个新的容量.

因此,如果您确定要使用超过16个空格,则应使用更高的值对其进行初始化.

  • 在`StringBuilder`源代码中没有任何暗示`capacity`应该是2的幂.是的,当增长缓冲区每次加倍时,但这并不意味着用初始化初始化`StringBuilder`不是最佳的大小,比方说,100 (2认同)