Разница между JRE и JVM

Здесь мы поймем, что такое JVM (виртуальная машина Java), что такое JRE (среда выполнения Java). Кроме того, мы также изучим основные различия между JVM и JRE. В этой теме мы собираемся узнать о JRE против JVM.

Что такое JVM?

Виртуальная машина Java (JVM) - это виртуальная машина, которая находится на вашем компьютере и выполняет Java-байт-код. Виртуальная машина Java понимает только байт-код, поэтому существует компилятор javac, который преобразует исходный код (.java) в байт-код (.class), понятный JVM. Хотя JVM, установленная в разных операционных системах, отличается, выходные данные, производимые JVM, одинаковы для всех операционных систем.

Компоненты JVM

Ниже перечислены различные компоненты, присутствующие в JVM:

1. ClassLoader: Основная функция загрузчика классов заключается в чтении файла .class и сохранении байт-кода в область методов JVM.

2. Область методов: область методов Java Virtual Machine хранит всю связанную с классами информацию обо всех классах, загружаемых загрузчиком классов.

3. Область кучи: область кучи является частью JVM, в которой находятся созданные объекты. JVM создает объект класса для каждого файла .class, загружаемого загрузчиком классов.

4. Стек: эта часть JVM хранит временные переменные.

5. Регистры ПК: Регистры ПК хранят записи о том, какая инструкция была выполнена, а какая следующая в очереди для выполнения.

6. Стек собственных методов. Стек собственных методов содержит информацию о собственном коде. Он написан на других языках программирования, чем Java.

7. Механизм выполнения. Механизм выполнения jvm отвечает за выполнение байт-кода или скомпилированного кода. Механизм исполнения jvm содержит:

  • Виртуальный процессор: виртуальный процессор отвечает за последовательное выполнение кодов операций.
  • Интерпретатор: Интерпретатор интерпретирует байт-код. Он отвечает за чтение потока байт-кода, интерпретацию инструкций байт-кода и выполнение их через виртуальный процессор. Но недостаток интерпретатора заключается в том, что когда один метод вызывается несколько раз, каждый раз возникает требование новой интерпретации.
  • Компилятор Just-In-Time (JIT): он в основном используется для повышения производительности. Он используется для преодоления недостатка интерпретатора, когда JVM находит повторяющийся код, он использует JIT-компилятор, который компилирует байт-код и превращает его в собственный код. Этот нативный код используется непосредственно при повторных вызовах методов, что, в свою очередь, обеспечивает значительное улучшение производительности.

Из перечисленных выше деталей функции JVM можно обобщить следующим образом:

  • JVM загружает код.
  • JVM проверяет загруженный код.
  • JVM выполняет код, если он действителен.
  • JVM предоставляет среду выполнения.

Работу JVM можно объяснить с помощью следующего потока:

Что такое JRE?

Java Runtime Environment является частью комплекта разработки Java (JDK).

Java Runtime Environment (JRE) - это установочный пакет, который предоставляет среду для запуска кода Java. Следует отметить, что JRE используется только конечными пользователями, которые хотят запускать код Java. JRE содержит JVM, то есть JVM является подмножеством JRE. Java Runtime Environment включает в себя следующее:

Технологии развертывания.

  1. Инструментарии пользовательского интерфейса, такие как абстрактный оконный инструментарий (AWT), Swing, интерфейс именования и каталогов Java (JBDI), Java 2D, служба печати, перетаскивание (DND) и т. Д.
  2. Библиотеки Lang и util, такие как lang и util, управление, zip, отражение, JAR, Preference API, утилиты параллелизма и многопоточности Regular Expressions, Logging и другие.
  3. Базовые библиотеки, включая ввод-вывод (I / 0), математику, работу в сети, механизм переопределения, сериализацию, синтаксические анализаторы Java XML, собственный интерфейс Java (JNI).
  4. Библиотеки интеграции, например, язык определения интерфейса, соединение с базой данных Java (JDBC), удаленный вызов метода (RMI), интерфейс именования и каталогов Java (JNDI).
  5. Виртуальная машина Java (JVM).

Сравнение лицом к лицу между JRE и JVM (Инфографика)

Ниже приведены 8 основных различий между JRE и JVM

Ключевые различия между JRE и JVM

Ниже приведены ключевые различия между JRE и JVM.

  • Основная функция JRE - предоставить среду выполнения для запуска приложений Java, тогда как JVM преобразует байт-код в машинный код для выполнения и обеспечивает независимость от платформы.
  • JRE действует как контейнер, а jvm - как контент.
  • JRE состоит из библиотек JVM + для запуска приложений, тогда как jvm содержит только среду выполнения для выполнения байт-кода Java.

Сравнительная таблица между JRE и JVM

Давайте обсудим лучшее сравнение между JRE и JVM

Основа сравненияJREJVM
Полная формаПолная форма JRE - среда выполнения Java.Полная форма JVM - виртуальная машина Java.
ОпределениеJava Runtime Environment является частью Java Development Kit (JDK), который включает в себя JVM, базовые классы и вспомогательные библиотеки. Его основная функция заключается в предоставлении среды выполнения для запуска кода Java.Виртуальная машина Java (JVM) похожа на виртуальную машину, которая выполняет набор предварительно скомпилированных операторов. Когда компилятор Java компилирует исходный код, он генерирует набор инструкций, называемых байт-кодом (файлы .class). Виртуальная машина Java интерпретирует инструкции байт-кода и преобразует их в машинный код для его выполнения.
Контейнер и КонтентJRE действует как контейнер, содержащий JVM, библиотеки и другие файлы. Более того, JRE не содержит инструментов разработки, таких как компилятор и отладчик.JVM является частью JRE. Это можно рассматривать как подмножество JRE.
Цель развитияОн не используется в целях разработки.Используется в целях разработки.
Рабочая цельОн используется для запуска кода Java.Он не используется для запуска кода Java.
Состоит изJRE состоит из библиотек JVM + для запуска приложений.Он содержит только среду выполнения для выполнения байт-кода Java.
ПодмножествоЭто подмножество JDK.Это подмножество JRE.
инструментыОн содержит библиотеки классов, необходимые для запуска программ.Он не содержит никаких инструментов.

Вывод - JRE против JVM

Из этой статьи у нас есть четкое понимание как Java Runtime Environment (JRE), так и Java Virtual Machine (JVM), которые являются наиболее важными частями Java Development Kit (JDK).

Рекомендуемые статьи

Это руководство по JRE против JVM. Здесь мы обсудили ключевые отличия JRE от JVM с помощью инфографики и сравнительной таблицы. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Java против Node JS
  2. Groovy против Java
  3. Java против C #
  4. Java против JavaScript