如何在Java中计算StringBuffer的容量?


java.lang包的String类表示一组字符。Java程序中的所有字符串字面量,例如“abc”,都实现为此类的实例。String对象是不可变的,一旦创建String对象,就不能更改其值,如果尝试这样做,则不会更改值,而是创建一个具有所需值的新对象,并且引用会转移到新创建的对象,留下之前的对象未被使用。

当需要对String进行大量修改时,使用StringBuffer(和StringBuilder)类。

与String不同,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

更新于:2019年9月10日

891 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告