Java中如何计算字符串缓冲区容量
Java.lang包的String类表示一组字符。Java程序中的所有字符串文字(如“abc”)都实现为该类的实例。String对象是不可变的,一旦您创建了String对象,您就不能更改它们的值,如果您尝试这样做而不是更改值,则会创建一个具有所需值的新对象,并且引用将转移到新创建的对象,而不使用前一个对象。
如果需要对String进行大量修改,则使用StringBuffer(和StringBuilder)类。
与Strings不同,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("字符串缓冲区的内容: "+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("初始容量: "+buffer.capacity()); buffer.append("Hello "); buffer.append("how "); buffer.append("are "); buffer.append("you"); System.out.println("字符串缓冲区的内容: "+buffer); System.out.println("添加数据后的容量: "+buffer.capacity()); } }
输出结果
初始容量: 16 字符串缓冲区的内容: Hello how are you 添加数据后的容量: 34