📅  最后修改于: 2020-09-24 01:31:23             🧑  作者: Mango
在Java中,字符串对象是不可变的。不可变只是意味着不可更改或不可更改。
创建字符串对象后,其数据或状态便无法更改,但会创建一个新的字符串对象。
让我们尝试通过以下示例了解不变性概念:
class Testimmutablestring{
public static void main(String args[]){
String s="Sachin";
s.concat(" Tendulkar");//concat() method appends the string at the end
System.out.println(s);//will print Sachin because strings are immutable objects
}
}
现在可以通过下面给出的图表来理解。此处Sachin不变,但使用sachintendulkar创建了一个新对象。这就是为什么字符串被称为不可变的原因。
如您在上图中所看到的,创建了两个对象,但是引用变量仍然引用“Sachin”而不是“SachinTendulkar”。
但是,如果我们明确地将其分配给引用变量,它将引用“SachinTendulkar”对象。例如:
class Testimmutablestring1{
public static void main(String args[]){
String s="Sachin";
s=s.concat(" Tendulkar");
System.out.println(s);
}
}
在这种情况下,s指向“SachinTendulkar”。请注意,尚sachin对象未修改。
因为java使用字符串文字的概念。假设有5个引用变量,所有引用一个对象“ sachin”。如果一个引用变量更改了该对象的值,它将影响所有引用变量。这就是为什么字符串对象在Java中是不可变的。