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

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

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

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

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

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


Поделиться:

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

Ваш адрес email не будет опубликован.