それでは変更されていない。その証拠に、
String s = "あいうえお";
String s2 = s;
s = "かきくけこ";
としても、
s2 は "あいうえお"のまま。

次と比較して考えよう。

StringBuilder s = new StringBuilder("あいうえお");
StringBuilder s2 = s;
s.append("かきくけこ");
としたときのs2は?

StringBufferは同期を取るおそいStringBuilderと考えていい