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