In general, the policy is as follows:
Maintenance releases do not introduce any new APIs, so they maintain source compatibility with one another.
Functionality releases and major releases maintain upwards but not downwards source compatibility.
Deprecated APIs are methods and classes that are supported only for backward compatibility, and the compiler generates a warning message whenever one of these is used, unless the -nowarn command-line option is used. It is recommended that programs be modified to eliminate the use of deprecated methods and classes, though there are no current plans to remove such methods and classes entirely from the system.