J2SE 1.4 は、次に示す非互換性を除いて、初期バージョンとのソースの上位互換性を持っています。この非互換性を除けば、初期リリースで定義された言語機能や API を使用するように書かれたソースファイルは J2SE 1.4 でもコンパイルおよび実行できます。
ソースの下位互換性はサポートされません。新しい言語機能や Java 2 Platform API を使用するソースファイルは、初期バージョンの Java 2 Platform では使用できません。
一般的に、ポリシーは次のとおりです。
保守リリースは新しい言語機能や API を導入しないので、上位と下位の両方のソース互換性を持っています。
機能リリースとメジャーリリースはソースの上位互換性を持っていますが、ソースの下位互換性は持っていません。
非推奨 API は下位互換性だけをサポートするメソッドやクラスであり、このような API を使用していると、-nowarn コマンド行オプションを指定していない限り、コンパイラは警告メッセージを生成します。非推奨メソッドやクラスを使用しないようにプログラムを変更することが推奨されますが、現在のところ、このようなメソッドやクラスをシステムから完全に削除する計画はありません。
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』を参照してください。