>>88
+ は print()文使用時に役に立つ。が、StringBuffer#append()より遅い。
もしC#のように == まで勝手にString()#equals()と同等な振る舞いを持つように
オーバーロードされては不便。文字列は同じだがオブジェクトは異なるといったことができなくなる。


>>91
基本型ではなくクラス。

JavaのString型はかなり特殊。
あらゆるプリミティブ型やオブジェクトをString型に代入すると
暗黙のうちのそのオブジェクトからtoString()メソッド(primitiveの場合はラップクラスのtoString())が呼び出される。
ある自作クラスのデフォルトのtoString()が気に入らなかったらtoString()メソッドをオーバライドなどすればいい。