ソースの下位互換性はサポートされません。新しい言語機能や Java 2 Platform API を使用するソースファイルは、初期バージョンの Java 2 Platform では使用できません。
後の方に挙げられた非互換性を除き、一般にポリシーは次のとおりです。
保守リリース (1.4.1、1.4.2 など) は新しい言語機能や API を取り入れていないため、互いにソースレベルの互換性があります。
機能リリースとメジャーリリース (1.3.0、1.4.0、1.5.0 など) は上位互換性はありますが、ソースレベルの下位互換性はありません。
推奨されない API は、下位互換性だけを考慮してサポートされているインタフェースです。これらのどれかを使用すると、-nowarn コマンド行オプションを指定していないかぎり、javac コンパイラは警告メッセージを生成します。推奨されない API を使用しないようにプログラムを変更することを推奨しますが、JVMDI と JVMPI がシステムから完全に削除される以外、現在のところこのような API を削除する計画はありません (バグ 4639363 を参照)。
sun.* パッケージ内のいくつかの API は変更されました。これらの API は開発者向けではありません。sun.* パッケージからインポートする場合、開発者は自分の責任で行うようにしてください。詳細については、http://java.sun.com/products/jdk/faq/faq-sun-packages.html にある 「Why Developers Should Not Write Programs That Call sun.* Packages」を参照してください。