Платформонезависимость Java

Эта статья является частью книги «Java в динамике (2022)».

Программы Java исполняются на виртуальной машине JVM (Java Virtual Machine). Когда мы компилируем программу на Java, то мы получаем на выходе не инструкции для какого-то конкретного физического процессора (x86 или других), а код для виртуальной машины. Файлы «.class» содержат байткод для JVM. Затем при запуске программы JVM компилирует этот код в команды конечного процессора, на котором он работает.

Благодаря компиляции не в конечный код, а в код для виртуальной машины, мы можем перенести наши программы на другой компьютер даже с другой архитектурой, и они будут там работать, при условии что на компьютере существует JVM необходимой версии или выше.

Байткод Monster.class может запускаться на любой архитектуре и ОС (при наличии нужной JVM)

Существуют различные реализации JVM даже для одной архитектуры процессора и одной ОС. Они имеют некоторые различие в поставляемых компонентах, в скорости работы и в особенностях реализации. Они все реализуют одну и ту же спецификацию, поэтому в большинстве случаев программы запускаются без проблем, но это не значит, что их не нужно тестировать на той платформе, на которой предполагается использовать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *