6.2.5 缓冲字符串StringBuffer类的构造器

在这一小节中,将学习缓冲字符串类的构造器知识。通过学习来对比StringBuffer类和String类的不同点和相同点。

1.默认的构造器


StringBuffer sb=new StringBuffer();


默认构造器是由系统自动分配容量,而系统容量默认值是16个字符。

【实例6.23】下面来看这个默认构造器的实例。


01 ///输出字符串的容量capacity

02 ///输出字符串的长度length

03 public class str23

04 {

05 public static void main(String[]args)

06 {

07 StringBuffer sb1=new StringBuffer();

08 System.out.println(sb1.capacity());

09 System.out.println(sb1.length());

10 }

11 }


【代码说明】这个程序段要说明的是,缓冲字符串对象的容量和缓冲字符串的长度。缓冲字符串的容量,就是指在刚刚创建对象时,系统分配的内存容量的大小。缓冲字符串的长度,则是指实际缓冲字符串对象的内存空间中,字符串的长度。在这个程序中,由于是默认的构造器,所以它的容量也是默认的,即16。由于它没有赋值,所以这个缓冲字符串对象的长度就是0。

【运行效果】


16 0


2.设定容量大小的构造器


StringBuffer sb=new StringBuffer(int x)


“x”是设置容量的大小值。

【实例6.24】例如下面的语句。


01 ///输出字符串的容量capacity

02 ///输出字符串的长度length

03 public class str24

04 {

05 public static void main(String[]args)

06 {

07 StringBuffer sb1=new StringBuffer(100);

08 System.out.println(sb1.capacity());

09 System.out.println(sb1.length());

10 }

11 }


【代码说明】这里通过构造器设定了缓冲字符串对象的容量。虽然容量改变了,但长度仍然是零,因为它的内存空间中没有值。“capacity()”方法代表了字符串对象在内存中,可以容纳字符串的个数。如果想要扩充内存容量,可以使用方法“ensureCapacity()”。方法“length()”表示内存中已经存在的字符串的个数,如果想要改变字符串长度,可以使用“setLength()”方法。

【运行效果】


100 0


【实例6.25】下面看一个缓冲字符串实例。


01 ///输出字符串的容量capacity

02 ///输出字符串的长度length

03 public class str25

04 {

05 public static void main(String[]args)

06 {

07 StringBuffer sb=new StringBuffer(40);

08 System.out.println(sb.capacity());

09 sb.ensureCapacity(100);

10 System.out.println(sb.capacity());

11 }

12 }


【代码说明】这里通过构造器设定了缓冲字符串对象的容量,第一次是40。第9行使用方法“ensureCapacity()”扩充内存容量到100。

【运行效果】


40 100