Java のいいと思ったところ

interface サイコー

クラスのメソッドのうち一部に限定して外部に公開することができます。目的別にまとめておけば、クラス間の依存も最小限に抑えることができるので、個々のクラスの独立性を高めることができますし、他のプロジェクトで流用するのも簡単です。これまで、C++ の pure virtual 関数を interface 代わりとして多用してきたので、言語レベルでちゃんとサポートしているのは嬉しい話です。

#include やマクロ撤廃サイコー

C/C++ のように #include やマクロがないので、ヘッダの衝突や include の順番を入れ替えただけでコンパイルエラーが出る *1 、などのあほな副作用を気にする必要がないのは、まるで天国のようです(笑)。
C++ の時は id:logion:20060227#p1 や id:logion:20060602#p1 でも書いたようにヘッダ衝突によるコンパイルエラーを避けるために設計変更とかまでやってましたから…。

javadoc サイコー

C++ でも doxygen など外部のツールでソースからドキュメントを作成することは可能ですが、標準として存在しているのは強いと思います。標準だけあって統合環境でのサポート度合も高く、eclipse では javadoc 形式のコメントを入力した直後から、メソッド名にマウスカーソルを重ねた時の説明に反映されるあたりがステキ過ぎです。(VC++ にもあったような気がしていますが未確認です…)

*1:VC++6 の頃、windows.h と STL の共用でよく発生しました