如何计算 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

相关文章