public static void main(String args[]){
StringBuilder sb=new StringBuilder();
System.out.println(sb.capacity());
sb.append("abcabcabcabcabcabcab");
System.out.println(sb.length());
System.out.println(sb.capacity());
System.out.println("-----");
sb.append("abcabcabcabcabcabcab");
System.out.println(sb.length());
System.out.println(sb.capacity());
System.out.println("-----");
sb.trimToSize();
System.out.println(sb.capacity());
System.out.println(sb.length());
}
16
20
34
-----
40
70
-----
40
40
我的问题是,在第二行中,容量应36(20 + 16)。为什么它显示为34.
您的标题和标签say * StringBuffer *。你的代码说* StringBuilder *。这是什么? –
相关:(如果你的意思是StringBuffer)http://stackoverflow.com/questions/8011574/what-is-the-capacity-of-a-stringbuffer?rq=1 – Thilo