【发布时间】:2019-01-20 15:37:53
【问题描述】:
当 StringBuffer 容量用尽时是否会创建一个新的 StringBuffer 对象,或者它仍然是旧的?
class Test{
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
StringBuffer sb2 = sb;
System.out.println(sb.capacity());
sb.append("abcdefghijklmnop");
System.out.println(sb.capacity());
sb.append("q");
System.out.println(sb.capacity());
System.out.println(sb == sb2);
}
}
输入:深度(主 *)LanguagePackageInJava $ javac Lecture7.java
deep (master *) LanguagePackageInJava $ java Test
输出:16
16
34
真的
在上面的代码中,我尝试创建一个StringBuffer对象sb,并在StringBuffersbsb2 /strong> 为空。我试图溢出sb的容量,然后通过比较sb2和sb来尝试是否创建了一个新对象。但它返回真。我想没有对象被创建。但即使在阅读了文档之后,我也不太确定。任何帮助将不胜感激!
【问题讨论】:
标签: java object garbage-collection stringbuffer