猿教程 Logo

Java不可变字符串

在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
 }
}
Output:Sachin

现在可以通过下面的图表来理解。 这里Sachin不会改变,但是使用sachintendulkar创建一个新对象。 这就是为什么字符串被称为不可变的。


如上图所示,创建了两个对象,但是参考变量仍然指“Sachin”而不是“Sachin Tendulkar”。

但是如果我们明确地将它分配给引用变量,它将引用“Sachin Tendulkar”对象。例如:

相关实例:

class Testimmutablestring1{
 public static void main(String args[]){
   String s="Sachin";
   s=s.concat(" Tendulkar");
   System.out.println(s);
 }
}
Output:Sachin Tendulkar

在这种情况下,s指向“Sachin Tendulkar”。 请注意,仍然没有修改sachin对象。


为什么字符串对象在java中是不可变的?

因为java使用字符串literal的概念。提供有5个引用变量,所有引用到一个对象“sachin”。如果一个引用变量更改对象的值,它将受到所有引用变量的影响。 这就是为什么字符串对象在java中是不可变的。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/java-immutable-string.html