Zachowanie puli ciągów
Przeczytałem toPytania dotyczące puli Java's String i zrozumieć podstawową koncepcję puli strun, ale wciąż nie rozumiem zachowania.
Po pierwsze: działa, jeśli bezpośrednio przypisujesz wartość, a zarówno s1, jak i s2 odnoszą się do tego samego obiektu w puli
String s1 = "a" + "bc";
String s2 = "ab" + "c";
System.out.println("s1 == s2? " + (s1 == s2));
Ale jeśli zmienię ciąg s1 + = "d", pula powinna mieć obiekt łańcuchowy "abcd"? wtedy kiedy zmieniam s2 + = "d", powinien znaleźć obiekt łańcucha "abcd" w puli i powinien przypisać obiekt do s2? ale nie ma i nie są one odnoszone do tego samego obiektu. Dlaczego?
String s1 = "abc";
String s2 = "abc";
System.out.println("s1 == s2? " + (s1 == s2));
s1 += "d";
s2 += "d";
System.out.println("s1 == s2? " + (s1 == s2));