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)를해야한다고이다. 왜 내가 StringBuilder
을 생각하지 않는다, Javadoc을 보면 34
제목 및 태그는 * StringBuffer *라고 말합니다. 귀하의 코드는 * StringBuilder *라고 말합니다. 무엇 이니? –
관련 : (당신이 StringBuffer를 뜻한다면) http://stackoverflow.com/questions/8011574/what-is-the-capacity-of-a-stringbuffer?rq=1 – Thilo