Le bytecode de la JVM est compatible avec les principales versions de la JVM, mais pas avec les versions précédentes. Toutefois, pour obtenir les meilleures informations, vous devez lire les notes de mise à jour de la JVM, car elles indiquent généralement dans quelle mesure le bytecode est rétrocompatible.
Modifier la clarification puisque cela a provoqué une discussion dans les commentaires
Le bytecode de la JVM est compatible avec les versions ultérieures de la JVM, ce qui signifie que le bytecode d'une JVM est compatible avec les versions ultérieures de la JVM. Par exemple, vous pouvez prendre le bytecode de la JVM 1.4 et l'exécuter dans la JVM Java 5 ou Java 6 (en dehors de tout problème de régression comme l'a souligné Andrew).
Le bytecode JVM n'est pas rétrocompatible entre les JVM, de sorte que le bytecode d'une JVM n'est pas garanti de fonctionner dans une version antérieure de la JVM, comme ce serait le cas si vous essayiez d'exécuter du code compilé pour Java 6 dans une JVM 1.4.2.