capacity
0
收藏(0)
public class Example9_11{
public static void main(String[] args) {
StringBuffer str = new StringBuffer();
str.append("大家好");
System.out.println("str:"+str);
System.out.println("length:"+str.length());
System.out.println("capacity:"+str.capacity());
str.append("大家好我们大家都很喜欢学习java语言");
System.out.println("str:"+str);
System.out.println("length:"+str.length());
System.out.println("capacity:"+str.capacity());
StringBuffer sb = new StringBuffer("Hello");
System.out.println("str:"+sb);
System.out.println("length:"+sb.length());
System.out.println("capacity:"+sb.capacity());
}
}
str:大家好
length:3
capacity:16
str:大家好大家好我们大家都很喜欢学习java语言
length:22
capacity:34
问题,这里的capacity为什么是34? StringBuffer 在内部维护一个字符数组,当你使用缺省的构造函数来创建 StringBuffer 对象的时候
StringBuffer 的容量被初始化为 16 个字符,也就是说缺省容量就是 16 个字符。当 StringBuffer
达到最大容量的时候,它会将自身容量增加到当前的 2 倍再加 2,也就是 2 * 旧值 + 2。 零度非安全 发表于 2017-2-19 20:30
StringBuffer 在内部维护一个字符数组,当你使用缺省的构造函数来创建 StringBuffer 对象的时候
StringB ...
增两倍为什么还要加2 学习电脑 发表于 2017-2-19 21:29
增两倍为什么还要加2
你可以去看下该方法的定义 零度非安全 发表于 2017-2-19 21:36
你可以去看下该方法的定义
怎么看,在哪里查 学习电脑 发表于 2017-2-19 22:09
怎么看,在哪里查
可以在 Java 的开发环境看,比如 eclipse,也可以看 API 文档 零度非安全 发表于 2017-2-19 23:40
可以在 Java 的开发环境看,比如 eclipse,也可以看 API 文档
谢谢 学习电脑 发表于 2017-2-20 11:33
谢谢
如果您的【问题求助】得到满意的解答,请自行将分类修改为【已经解决】;如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】鼓励;善用【论坛搜索】功能,那里可能有您想要的答案!
页:
[1]