ひょっとしたらまた荒れる原因になるかもしれませんが・・・

Stringの変数に何かしら代入し、それを引数としてメソッドに送り、受け取った変数に代入などの操作を行った場合、
その時点で参照されるアドレスが変わってしまうという認識で合ってますか?
ということは、Stringに関してはアドレスがどうとか気にする必要が無い気がするんですが・・・

また、StringBufferで同様にメソッドに送りappendした場合、ちゃんと元の変数にも影響がありました。
となると、2、3行目に書いた事が間違っている事になってしまいます。
もうわけがわかりません・・・