java - StringBuffer 的长度是其容量的一部分吗?

标签 java

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/

相关文章:

java - 如何在 Java 文件中运行 Kotlin 库(通过 JitPack 分发)?

java - Xamarin.Android 支持 GithubActions 工作流程吗? (或者如何以编程方式安装JDK)

java - 如何过滤 Hibernate 搜索结果以仅包含排序期间具有特殊字段值的对象之后的对象?

javascript - 如何使用jsp、javascript、css以粗体或颜色显示表格数据

java - 如何解析 CSV 文件以便 Mahout 对其进行分类

java - Trove 库是线程安全的吗?

java - 找不到符号 'Context',android.content.Context

java - Java 中是否可以替换数组?

java - DynamicReports 找不到查询参数错误

java - 为什么 Rect(10,10,20,20) 不与 Rect(20,20,30,30) 相交