解析:A
length 返回当前长度
如果字符串长度没有初始化长度大,capacity返回初始化的长度
如果append后的字符串长度超过初始化长度,capacity返回增长后的长度
PS:
StringBuffer和StringBuilder的默认大小为16
ArrayList和LinkedList的默认大小10
StringBuffer s = new StringBuffer(x); x为初始化容量长度
s.append("Y"); "Y"表示长度为y的字符串
length始终返回当前长度即y;
对于s.capacity():
1.当y<x时,值为x
以下情况,容器容量需要扩展
2.当x<y<2*x+2时,值为 2*x+2
3.当y>2*x+2时,值为y
s.append("Y"); "Y"表示长度为y的字符串
length始终返回当前长度即y;
对于s.capacity():
1.当y<x时,值为x
以下情况,容器容量需要扩展
2.当x<y<2*x+2时,值为 2*x+2
3.当y>2*x+2时,值为y
示例代码:
public static void main(String [] args){
StringBuffer s1=new StringBuffer(10);
s1.append("1234");
System.out.println(s1.length());
System.out.println(s1.capacity());
StringBuffer s2=new StringBuffer(2);
s2.append("012");
System.out.println(s2.capacity());
StringBuffer s3=new StringBuffer(2);
s3.append("0123456");
System.out.println(s3.capacity());
}
输出结果为:
4
10
6
7
10
6
7