Поддерживал ли язык Java обратную совместимость исходного кода на протяжении всей своей истории?

Всегда ли Java поддерживала обратную совместимость исходного кода во время разработки?

Точнее: при наличии двух версий Java X и Y с X < Y любая программа для Java X также является допустимой программой для Java Y с той же семантикой? Например. X = Java 2 (или 1.2 со старой нумерацией) и Y = Java 5.

Или есть совместимость только на уровне JVM: например. класс, скомпилированный для JVM 1.2, может быть запущен JVM 5?

Если можно запустить код Java 2 на Java 5 (или 6, или 7), какие именно шаги я должен выполнить? Компилировать напрямую с помощью компилятора Java 5? Скомпилировать с помощью компилятора Java 2 и запустить на JVM 5?

7
задан Giorgio 6 April 2012 в 13:32
поделиться