String
, в стандарте Java существует еще StringBuffer
и StringBuilder
. Класс String
иммутабелен, а эти два вспомогательных класса реализуют для него паттерн Builder и служат способом редактирования строки без относительно дорогого пересоздания объекта.Все методы
StringBuffer
синхронны. В Java 1.5 ему на замену пришел несинхронизированный вариант StringBuilder
. Эта ситуация аналогична HashMap и Hashtable. В остальном эти два класса почти ничем не отличаются, имеют одинаковый набор методов и конструкторов.Для буфера и билдера не работает синтаксический сахар строк:
- Их нельзя создать литералом, вместо этого используется обычный конструктор;
- Нельзя конкатенировать оператором +, вместо этого используются обычные методы
insert
иappend
.
StringBuilder
.