为什么 Java 字符串被认为是不可变的?我可以说String name = "Paul";
,稍后将 name 值更改为name = "Henry";
. 不变性从何而来?
问问题
278 次
3 回答
3
创建了一个新字符串,它们绝对是不可变的,顺便说一句。
你不能这样做:
String name = "Paul"; // in effect the same as new String("Paul");
name.setValue("Henry")
因为字符串是不可变的,所以您必须创建一个全新的对象。
于 2013-05-14T12:17:53.960 回答
1
对象本身没有改变。
你所做的是以下
name <- String("Paul")
name <- String("Henry")
String("Paul") 没有改变。
尝试以下操作:
String a = "test";
String b = a;
a = "test2";
System.out.println(b);
于 2013-05-14T12:17:52.770 回答
1
区分变量:name,它指的是一个String和它所指的String。
name 最初指向字符串“Paul”,后来您将其更改为指向其他位置,“Paul”本身不受影响。
考虑
String name = "Paul";
String name1 = name;
name = "Peter";
name1 现在指的是什么?
于 2013-05-14T12:18:34.463 回答