我有一个问题。
示例:
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”在内存中的空间不同吗?
感谢您的帮助。
答案 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
”。 直到进行新的分配,a
和b
都将指向同一对象,但是一旦您分配了a
或{{1} }一个新值,它将不再为真。