String — это неизменяемый объект, то есть его значение нельзя изменить после создания. Как только String создан, любая операция, которая выглядит как изменение, на самом деле создаёт новый объект String.
StringBuffer — это изменяемый объект, который позволяет менять его содержимое напрямую без создания новых объектов.
Когда ты работаешь с операциями над String:
String str = "Hello";
str = str + " World"; // Создаёт новый объект String
С StringBuffer изменения происходят напрямую:
StringBuffer buffer = new StringBuffer("Hello");
buffer.append(" World"); // Изменяет существующий объект
Главное различие в том, что String неизменяем (значение не может меняться), а StringBuffer изменяем (значение можно свободно менять). Выбирай StringBuffer, когда нужно выполнить несколько операций со строками, чтобы избежать затрат на создание множества промежуточных объектов String.
Когда ты объединяешь String с помощью оператора +, исходный объект String изменяется на месте, чтобы включить новое содержимое.
Новый — ещё не проверен сообществом
Вы