Как работает емкость StringBuffer?

У меня вопрос, почему после вставки 12 букв 'sb' емкость меняется на 34? Почему остается 16 до 11 букв?

Как здесь работает концепция емкости?

StringBuffer sb=new StringBuffer();  
System.out.println(sb.capacity());//default 16  
sb.append("Hello");  
System.out.println(sb.capacity());//now 16  
sb.append("123456789ab");  
System.out.println(sb.capacity());//REMAINS 16
sb.append("123456789abc");
System.out.println(sb.capacity()); // NOW (16*2)+2=34 i.e (oldcapacity*2)+2

person Anuj    schedule 05.07.2017    source источник
comment
Я не понимаю вашего вопроса. Ваши комментарии, кажется, отвечают на ваше замешательство.   -  person Sotirios Delimanolis    schedule 05.07.2017
comment
Кроме того, страница, с которой вы взяли этот код, также объясняет, как работает емкость.   -  person Sotirios Delimanolis    schedule 05.07.2017
comment
@ArvindSasikumar: Потому что OP ошибается в том, сколько символов было вставлено. Пять символов из "Hello" плюс одиннадцать символов из 123456789ab плюс двенадцать символов из "123456789abc".   -  person Louis Wasserman    schedule 05.07.2017
comment
@LouisWasserman, спасибо, что вы правильно указали, что длина OP увеличивается, поэтому ее следует принимать как 5 + 11 = 16, а когда 5 + 12 = 17, это когда емкость увеличивается по установленной формуле. Спасибо еще раз.   -  person Anuj    schedule 05.07.2017