如何计算 Java 中的字符串缓冲区容量?
java 8object oriented programmingprogramming更新于 2025/4/15 7:22:17
java.lang 包中的 String 类表示一组字符。Java 程序中的所有字符串文字(例如"abc")都是作为此类的实例实现的。字符串对象是不可变的,一旦创建了字符串对象,就无法更改其值,如果您尝试这样做而不是更改值,则会创建一个具有所需值的新对象,并且引用将转移到新创建的对象,而前一个对象则未使用。
当需要对字符串进行大量修改时,将使用 StringBuffer(和 StringBuilder)类。
与字符串不同,StringBuffer 类型的对象可以反复修改,而不会留下大量新的未使用对象。它是一个线程安全的可变字符序列。
示例
public class StringBufferExample { public static void main(String[] args) { StringBuffer buffer = new StringBuffer(); buffer.append("Hello "); buffer.append("how "); buffer.append("are "); buffer.append("you"); System.out.println("Contents of the string buffer: "+buffer); } }
输出
Contents of the string buffer: Hello how are you
计算 StringBuffer 容量
StringBuffer 的容量表示 StringBuffer 中的字符数。
最初,每个 StringBuffer 对象都以固定的初始容量 16 创建。您也可以创建一个具有所需初始容量的 StringBuffer 对象,绕过所需的整数值作为 − 参数
StringBuffer sb = new StringBuffer(225);
在将数据附加到 StringBuffer 对象时,一旦超出初始容量,StringBuffer 对象的容量就会增加。
StringBuffer 类的 capacity() 方法返回一个表示 StringBuffer() 容量的整数值。使用此方法可以找到 StringBuffer 的容量。
示例
以下 Java 程序演示了如何查找 StringBuffer 对象的容量。
public class StringBufferCapacity { public static void main(String[] args) { StringBuffer buffer = new StringBuffer(); System.out.println("Initial capacity: "+buffer.capacity()); buffer.append("Hello "); buffer.append("how "); buffer.append("are "); buffer.append("you"); System.out.println("Contents of the string buffer: "+buffer); System.out.println("Capacity after adding data: "+buffer.capacity()); } }
输出
Initial capacity: 16 Contents of the string buffer: Hello how are you Capacity after adding data: 34