Строки класса StringBuffer удобны в тех случаях, когда требуется производить изменения в одной и той же строке – убирать или вставлять символы, менять их местами, заменять одни на другие. Изменения значений переменных этого класса не приводит к созданию мусора, и обычно происходит значительно быстрее, чем при работе с переменными типа String: быстродействие приложения повышается в десятки раз, потребление памяти уменьшается в сотни и тысячи раз.
Помимо поля длины строки, у строк этого класса имеется еще поле capacity (емкость) – размер буфера под символы строки. Только что созданная строка имеет буфер, достаточный для хранения 16 символов. Как только буфер начинает переполняться, его емкость автоматически увеличивается, чтобы вместить новые символы.
Создать строку текста класса StringBuffer можно с помощью следующих конструкторов:
1. создание пустой строки:
StringBuffer text=new StringBuffer();
создана пустая строка text и автоматически зарезервирована память еще на 16 символов;
2. создание пустой строкис заданным размером буфера:
StringBuffer text=new StringBuffer(60);
создана пустая строка text и для нее зарезервирована память на 60+16 символов;
3. создание копии строки на основе существующей строки этого же класса:
StringBuffer text=new StringBuffer(StringBuffer str);
создан новый объект-строка text - копия строки str.