我很抱歉这个问题确实很愚蠢,但是我想知道是否有人可以告诉我为什么会这样:
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