- 此问题在此处已有答案**:
(19个答案)
How is String in Java an immutable object, but I can still change its value after creating one? [duplicate](2个答案)
3年前关闭。
public class HelloWorld{
public static void main(String []args){
String s="java";
s="world";
System.out.println(s);
}
}
输出:
世界
1条答案
按热度按时间gmol16391#
代码中有两个
String
对象:"java"
和"world"
。它们都是不可变的(除非使用反射并依赖JDK内部)。s
变量首先指向第一个,然后指向第二个,但它们是独立的对象。之后:
你的记忆里有这样的东西
然后
您拥有:
因此,末尾的
println
显示了第二个字符串的内容。上面显示的
value
成员在任何给定的JDK实现中都可以称为value
,也可以不称为value
,它是一个私有数据成员。