驻留在相同的内存空间中

时间:2018-10-08 00:34:14

标签: java

我有一个问题。

示例:

public class Test {

    public static void main(String[] args){

        String a = "hello";

        String b = a;

        a = "bye";


        System.out.println(b);

        //Output: "hello"

    }

}

为什么? “ a”与“ b”在内存中的空间不同吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

String a = "hello"; // a is a reference to the "hello" string object

String b = a; // b is a reference to the same "hello" string object

a = "bye"; // a is updated to reference the "bye" string object
           // b is still referencing the "hello" string object

System.out.println(b); // "hello" is printed

答案 1 :(得分:0)

写作时

String b = a;

不是说“ b现在将永远指向与a相同的事物。

您是在说“将a的值分配给b”。 直到进行新的分配ab都将指向同一对象,但是一旦您分配了a或{{1} }一个新值,它将不再为真。