Когда вы пишете:
String myString = "Hi!";
Вы делаете две вещи.Первый определяет ссылку с именем myString , второй создает объект String.Этот строковый объект содержит «Привет!», И нет способа изменить это.Другими словами, не существует set
метода для изменения строки:
myString.set("another content");
Однако вы можете создать новый объект и изменить ссылку myString
, чтобы указать на нее.Важно знать, что myString не является самим объектом String, а просто ссылкой на него.
myString = "New content";
Когда вы это делаете, старая строка не указываетсялюбая переменная уже не является кандидатом на сборку мусора.Также любая другая операция над строкой, такая как подстрока, верхний регистр и т. Д., Создаст новый объект String.
Когда объект, который нельзя изменить после создания, называется Immutable .В Java строки не только неизменяемы, но и окончательны, так что вы не можете создать подкласс String для изменения его поведения.