我很抱歉这个问题确实很愚蠢,但是我想知道是否有人可以告诉我为什么会这样:

String helloString = "hello";
String referenceOfHello = helloString;

helloString = "bye";

System.out.println(referenceOfHello);


和输出是你好。我原本希望再见,但那没有发生。
我知道这是一个非常基本的问题,但我一直认为referenceOfHello存储了helloString的内存位置,而不是其值。

谢谢。

最佳答案

注释中带有解释的代码。

String helloString = "hello"; //creates variable in heap with mem address 1001
String referenceOfHello = helloString; //now referenceOfHello and helloString are poimnting  same object

helloString = "bye"; //now, helloString  pointing diff object say 1002, but still, referenceOfHello  will point to 1001 object

10-04 15:57