JDK5向けで開発を行っていたものがJDK6では全然コンパイルが通らなくなりました。意外と違いが多くてびっくりです。
java.util.LinkedListを継承したクラスを作っていたのですが、JDK6でjava.util.LinkedListに追加されたメソッドと、自前の追加したメソッドの名前がバッティングし、戻り値の互換性がないオーバーライドになってコンパイルできませんでした。
他にインパクトが強かったのが、java.sql.*やjava.lang.instrumentのインターフェイスのメソッド追加です。ラッパークラスは軒並みエラーです。
細かいところでは、java.lang.ClassのgetConstructors()です。JDK5ではConstructor[]を返していたのが、JDK6ではConstructor<?>[]を返すように変わっていました。キャストしていない部分ではエラーとなっていました。
他にもあるのでしょうが、気づいたのは以上です。ランタイムでは互換性があってもコンパイルタイムでは互換性の問題が結構ありますね。凪瀬さん、指摘サンクス!