想請問一下
String s1 = "I learn";
s1 += " Java";
String s2 = "I";
s2 += " learn Java";
System.out.println(s1 == s2); //false
這個是 false 我可以理解,兩個的記憶體位置不同,因此不會是 true,
但我想問的是
String s1 = "I";
String s2 = "I";
System.out.println(s1 == s2);
既然如剛剛所說 Java 在定義變數時,記憶體位置不相同,應該要是 false,
那為何這邊是 true,在沒有二度賦值時又變成了 call by value?
還是說第一個例子的原理 不算是 call by reference?
剛開始學 Java,抱歉問題有點新手