The StringBuilder class enables you to (in effect) create a mutable string i.e. a string that can be changed.
You can change existing characters, insert or add new ones or delete characters and it's still the same object. It automatically increases its size when needed by doubling the size of its internal buffer.
In constrast, the String class produces immutable strings. Methods which appear to change the string do in fact return a new one.
Because StringBuilders are mutable they are useful for operations such as concatenation on a large number of strings, where they are more performant than ordinary strings and ease pressure on the garbage collector