Всегда ли Java поддерживала обратную совместимость исходного кода при разработке?
Точнее: с учетом двух версий Java X и Y с X
Или есть ли совместимость только на уровне JVM: например, класс, скомпилированный для JVM 1.2, может быть запущен JVM 5?
Если возможно запустить код Java 2 на Java 5 (или 6, или 7), какие именно шаги я должен выполнить? Компилировать напрямую с компилятором Java 5? Скомпилировать с помощью компилятора Java 2 и запустить на JVM 5?