Різниця між JRE та JVM

Тут ми зрозуміємо, що таке JVM (віртуальна машина Java), що таке JRE (Java Runtime Environment). Крім того, ми також вивчимо основні відмінності між JVM та JRE. У цій темі ми дізнаємось про JRE проти JVM.

Що таке JVM?

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

Компоненти СВМ

Нижче наведено різні компоненти, присутні у JVM:

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

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

3. Зона купи (Heap Area): Heap Area - це частина JVM, де розташовані створені об’єкти. JVM створює об’єкт класу для кожного файлу .class, завантаженого завантажувачем класів.

4. Стек: Ця частина JVM зберігає тимчасові змінні.

5. Реєстри ПК: регістри ПК ведуть облік того, яка інструкція була виконана, а яка наступна в рядку для виконання.

6. Стек Native Method: стек Native method містить інформацію про нативний код. Він написаний іншими мовами програмування, ніж java.

7. Двигун виконання: Двигун виконання jvm відповідає за виконання байтового коду або складеного коду. Двигун виконання jvm містить:

  • Віртуальний процесор: Віртуальний процесор відповідає за послідовне виконання операційних кодів.
  • Перекладач: Інтерпретатор інтерпретує байт-код. Він відповідає за зчитування потоку байт-коду, інтерпретацію інструкцій байт-коду та їх виконання через віртуальний процесор. Але недоліком перекладача є те, що коли один метод викликається багаторазово, кожен раз виникає вимога нової інтерпретації.
  • Компілятор Just-In-Time (JIT): в основному використовується для підвищення продуктивності. Він використовується для того, щоб подолати недолік інтерпретатора, коли JVM знаходить повторний код, він використовує компілятор JIT, який компілює байт-код і змінює його в нативний код. Цей нативний код безпосередньо використовується у повторних викликах методів, що, в свою чергу, забезпечує різке підвищення продуктивності.

З деталей, перерахованих вище, функції JVM можна узагальнити як:

  • Код завантаження JVM.
  • JVM перевіряє завантажений код.
  • JVM виконує код, якщо він дійсний.
  • JVM забезпечує середовище виконання.

Роботу JVM можна пояснити через поданий нижче потік:

Що таке JRE?

Навколишнє середовище Java - це частина набору для розробки Java (JDK).

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

Технології розгортання.

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

Порівняння між керівництвом JRE та JVM (Інфографіка)

Нижче наведено 8 найкращих відмінностей між JRE та JVM

Основні відмінності між JRE та JVM

Нижче наведені ключові відмінності між JRE та JVM

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

Порівняльна таблиця між JRE та JVM

Давайте обговоримо найкраще порівняння між JRE та JVM

Основи порівнянняJREJVM
Повна формаПовна форма JRE - середовище виконання Java.Повна форма JVM - це віртуальна машина Java.
ВизначенняНавколишнє середовище Java Runtime - це частина 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 Java (JRE), так і віртуальну машину Java (JVM), які є найважливішими частинами Java Development Kit (JDK).

Рекомендовані статті

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

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