StringBuffer theString = new StringBuffer("0123456789ABCDEF");
在这种情况下:
长度=16
容量=32
但是如果我再追加 16 个字符:
theString.append("0123456789ABCDEF");
长度=32
容量=32
所以我有点困惑,有可能使用完整的缓冲区(因为我认为当我添加额外的 16 个字符时会发生这种情况)或者缓冲区永远不会到达,因为它总是与长度分开?
最佳答案
这是 StringBuffer 的 java API,https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html ,说的是“每个字符串缓冲区都有一个容量,只要字符串缓冲区所包含的字符序列的长度不超过容量,就不需要分配新的内部缓冲区数组。如果内部缓冲区溢出,则自动变大。”因此,如果您添加更多角色,它将根据需要增加容量并增长。
关于java - StringBuffer 的长度是其容量的一部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38674466/