Разлика между JRE срещу JVM

Тук ще разберем какво е JVM (виртуална машина на Java), какво е JRE (Java Runtime Environment). Освен това ще проучим и основните разлики между JVM и JRE. В тази тема ще научим за JRE срещу JVM.

Какво е JVM?

Java Virtual Machine (JVM) е виртуална машина, която се намира на вашия компютър и изпълнява Java байт код. Java виртуалната машина разбира само байтов код, затова има javac компилатор, който преобразува изходния код (.java) в байт код (.class), който се разбира от JVM. Въпреки че JVM, инсталиран в различни операционни системи, е различен, продукцията, получена от JVM, е последователна във всички операционни системи.

Компоненти на JVM

Следните компоненти са различни в JVM:

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

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

3. Heap Area: Heap Area е част от JVM, където се намират създадени обекти. JVM създава клас обект за всеки .class файл, зареден от класовия товарач.

4. Стек: Тази част от JVM съхранява временни променливи.

5. Компютърни регистри: PC регистрите водят запис коя инструкция е изпълнена и коя следваща на ред да бъде изпълнена.

6. Native метод стек: Native метод стека съдържа информация за естествения код. Написана е на други програмни езици освен java.

7. Engine Engine: Изпълнението на 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), суинг, Java именуване и директория интерфейс (JBDI), Java 2D, услуга за печат, влачене и пускане (DND) и т.н.
  2. Lang и util библиотеки като lang и util, управление, цип, размисъл, JAR, API за предпочитания, Регулярни изрази Concurrency и многопоточни програми, Logging и други.
  3. Базови библиотеки, включващи вход-изход (I / 0), математика, работа в мрежа, механизъм за отмяна на сериализацията, Java XML парсери, Java Native Interface (JNI).
  4. Интеграционни библиотеки, например език за дефиниране на интерфейс, Java DataBase Connectivity (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 Runtime Environment.Пълната форма на JVM е виртуална машина на Java.
дефиницияJava Runtime Environment е част от Java Development Kit (JDK), който се състои от JVM, основни класове и библиотеки за поддръжка. Основната му функция е да осигурява среда за изпълнение, за да стартира java код.Java Virtual Machine (JVM) е като виртуален компютър, който изпълнява набор от предварително компилирани оператори. Когато компилатор на Java компилира изходния код, той генерира набор от инструкции, наречени байт код (файлове .class). Java Virtual Machine интерпретира инструкции за байтови кодове и ги преобразува в машинен код за неговото изпълнение.
Контейнер и съдържание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