Привет друзья, сегодня я хочу поделиться с вами небольшой статьей о JVM. Это коротко, но ясно для вашего понимания виртуальной машины Java. Садись, налей чашку кофе и присоединяйся ко мне на уроке.

Что такое виртуальная машина Java (JVM)?

Как следует из названия, это движок, который помогает Java-приложениям работать на машинах. Он обеспечивает среду выполнения для приложений Java.

Как работает JVM?

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

В отличие от других компиляторов, которые непосредственно создают машинный язык во время компиляции, компилятор Java создает промежуточный код, называемый байт-кодом. Затем байт-код преобразуется в машинный язык. Это происходит во время выполнения и называется своевременной компиляцией, выполняемой компилятором Just In Time Compiler (JIT).

JVM находится в оперативной памяти. Таким образом, скомпилированный байт-код должен достичь его. Это происходит через подсистему под названием Загрузчик классов. Это загружает байт-код в ОЗУ.

В JVM байт-код проверяется для проверки безопасности другой подсистемой, которая называется верификатор байт-кода. Затем переводится в машинный код, готовый к выполнению. Поскольку это происходит во время выполнения, это делает Java немного медленнее по сравнению с другими языками.

См. схему ниже:

Каковы компоненты JVM?

Загрузчик классов загружает байт-код (файлы .class) в средство проверки байт-кода. Верификатор обеспечивает безопасность кода, а затем передает его в механизм выполнения.

Механизм выполнения выполняет выполнение байт-кода. Но для этого движок должен взаимодействовать с базовой операционной системой, а также переводить байт-код на требуемый машинный язык.

Загрузчик классов загружает в виртуальную машину три элемента. В основном это три категории классов, необходимых для Java-приложения. Это классы начальной загрузки из rt.jar в папке jre/lib, классы расширения в jre/lib/ext. и классы приложений.

Вот и все друзья. Я знаю, что это намного больше, но это дает вам представление о том, как выглядит JVM. Оставьте комментарий, и я буду признателен.