Неизменяемые просто означают неизменяемые или неизменяемые. После создания строкового объекта его данные или состояние не могут быть изменены
Рассмотрим приведенный ниже пример,
class Testimmutablestring{
public static void main(String args[]){
String s="Future";
s.concat(" World");//concat() method appends the string at the end
System.out.println(s);//will print Future because strings are immutable objects
}
}
Давайте разберемся с приведенной ниже диаграммой,
На этой диаграмме вы можете видеть новый объект, созданный как "Мир Будущего". Но не меняйте «Будущее». Because String is immutable
. s
, все еще ссылаются на «Будущее». Если вам нужно позвонить «Мир будущего»,
String s="Future";
s=s.concat(" World");
System.out.println(s);//print Future World
Почему строковые объекты неизменяемы в Java?
Потому что в Java используется концепция строкового литерала. Предположим, есть 5 ссылочных переменных, все ссылаются на один объект «Будущее». Если одна ссылочная переменная изменит значение объекта, это повлияет на все ссылочные переменные. Вот почему строковые объекты неизменны в Java.