Чем отличаются друг от друга классы String и StringBuilder?



Объект класса String представляет собой неизменяемую строку.

Когда выполняется какой-нибудь метод класса String, система создает новый объект в памяти с выделением ему достаточного места.



Объект класса StringBuilder представляет собой динамическую строку.

При создании строки StringBuilder выделяет памяти больше, чем необходимо этой строке, а при добавлении к ней каких-либо элементов строка не пересоздается заново.

В том случае если выделенной памяти не будет хватать для добавления новых элементов, то емкость объекта будет увеличена.