stringbuilder的length()返回当前字符个数,capacity()返回内部数组总容量;默认容量16,超容自动扩容为oldcapacity×2+2,capacity恒≥length。

StringBuilder 提供两个关键方法来分别获取当前字符串的长度和内部字符数组的容量:
获取当前字符串的长度(length)
调用 length() 方法,返回当前 StringBuilder 中实际存储的字符个数。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 例如:new StringBuilder("abc").length() 返回 3
- 空 StringBuilder(如 new StringBuilder())的 length 为 0
- 追加、插入、删除等操作会动态改变 length 值
获取当前内部数组的容量(capacity)
调用 capacity() 方法,返回其内部 char 数组能容纳的最大字符数,不等于当前内容长度。
- 默认构造器创建的对象初始容量是 16
- 如果当前 length 超过 capacity,StringBuilder 会自动扩容(通常为 oldCapacity * 2 + 2)
- 可通过 ensureCapacity(int minimumCapacity) 主动预留空间,避免频繁扩容
一个直观的例子
StringBuilder sb = new StringBuilder("Hello");
System.out.println(sb.length()); // 输出:5
System.out.println(sb.capacity()); // 输出:21(16 + "Hello".length() = 16 + 5)
这是因为默认容量 16,加上初始字符串长度 5,总容量为 21 —— 容量不是“剩余可用空间”,而是“已分配数组的总大小”。
注意区分 length 和 capacity
- length 是你“写了多少字”,反映逻辑内容大小
- capacity 是系统“准备了多少纸”,反映底层内存分配情况
- 两者无固定比例关系,但 capacity 总是 ≥ length
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










