すいません、ふと疑問に思ったことがあるのですが、
StringBufferのappendは、なぜStringBufferを返すのでしょうか?

StringBuffer sb = new StringBuffer();
sb.append("A"); //これで値が変わるのに
sb = sb.append("A"); //こうした代入ができるようになっている