Почему версии файлов классов Java начинаются с 45? - PullRequest
5 голосов
/ 19 октября 2019

В соответствии со спецификацией JVM:

Реализация виртуальной машины Java Java в выпуске 1.0.2 JDK поддерживает версии файлов классов с 45.0 по 45.3 включительно. JDK выпускает версии поддержки файлов формата 1.1. * В диапазоне от 45.0 до 45.65535 включительно. Для k ≥ 2, выпуск 1.k JDK поддерживает версии форматов файлов классов в диапазоне от 45.0 до 44 + k.0 включительно.

https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

Мне интересно,почему они начали создавать версии с 45 , а не, скажем, с 1 или 0

1 Ответ

4 голосов
/ 20 октября 2019

Почему версии файлов классов Java начинаются с 45?

До первой опубликованной версии (Java 1.0.2) были версии Java.

JavaПервоначально начал работать как язык программирования Oak в 1991 году. Он был переименован в Java в 1994 году, а первый публичный выпуск был в 1996 году.

Можно с уверенностью предположить, что версии файла классов меньше 45использовались для более ранних (предварительных) версий Java и, возможно, Oak. В первые дни, вероятно, разработчики внесли многочисленные изменения в набор инструкций байт-кода и другие аспекты формата файла классов. Это потребовало бы регулярного "поднятия" номера версии файла класса.

Это выше предположение. Существует очень мало общедоступной информации о Oak и Java до версии 1.0. Однако текст спецификации Oak от 1993 года указывает, что они уже компилировали исходный код Oak в байтовые коды, которые хранились в файлах ".class", по одному на класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...