想请问一下
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,抱歉问题有点新手