JDK проти JRE проти JVM в Java – Різниця між ними

Ключова різниця між JDK, JRE та JVM

  • JDK — це комплект для розробки програмного забезпечення, тоді як JRE — це комплект програмного забезпечення, який дозволяє Java програма для запуску, тоді як JVM є середовищем для виконання байт-коду.
  • Повна форма JDK є Java Development Kit, тоді як повна форма JRE є Java Середовище виконання, тоді як повна форма JVM є Java Віртуальна машина.
  • JDK і JRE залежать від платформи, тоді як JVM не залежить від платформи на рівні байт-коду, але залежить від реалізацій на платформі.
  • JDK містить інструменти для розробки, налагодження тощо. JRE містить бібліотеки класів та інші допоміжні файли, тоді як засоби розробки програмного забезпечення не включені до JVM.
  • JDK постачається разом із інсталятором, з іншого боку, JRE містить лише середовище для виконання вихідного коду, тоді як JVM входить до програмного забезпечення JDK і JRE.

Що таке JDK?

JDK — це середовище розробки програмного забезпечення, яке використовується для створення аплетів і Java програми. Повна форма JDK є Java Набір для розробки. Java розробники можуть використовувати його на Windows, macOS, Solarisі Linux. JDK допомагає їм кодувати та запускати Java програми. На одному комп’ютері можна інсталювати більше однієї версії JDK.

Що таке JRE?

JRE — це частина програмного забезпечення, призначена для запуску іншого програмного забезпечення. Він містить бібліотеки класів, клас завантажувача та JVM. Простіше кажучи, якщо ви хочете бігти Java вам потрібна програма JRE. Якщо ви не програміст, вам це не потрібно встановити JDK, але для запуску лише JRE Java програми. Однак усі версії JDK постачаються в комплекті Java Середовище виконання, тому вам не потрібно завантажувати та встановлювати JRE окремо на вашому ПК. Повна форма JRE Java Середовище виконання.

Що таке JVM?

JVM — це механізм, який забезпечує середовище виконання для керування Java Код або програми. Це перетворює Java байт-код на машинну мову. JVM є частиною Java Середовище запуску (JRE). Його неможливо завантажити та встановити окремо. Щоб встановити JVM, вам потрібно встановити JRE. Повною формою JVM є Java Віртуальна машина.

У багатьох інших мовах програмування компілятор створює машинний код для конкретної системи. однак, Java компілятор створює код для віртуальної машини, яка називається JVM.

Навіщо використовувати JDK?

Ось важливі причини використання JDK:

  • JDK містить інструменти, необхідні для написання Java програми та JRE для їх виконання.
  • Він включає компілятор, Java засіб запуску програм, Appletviewer тощо.
  • Компілятор перетворює написаний код Java в байт-код.
  • Java засіб запуску програм відкриває JRE, завантажує необхідний клас і виконує його головний метод.

Навіщо використовувати JRE?

Ось важливі причини використання JRE:

  • JRE містить бібліотеки класів, JVM та інші допоміжні файли. Він не містить інструментів для Java розробка, як-от налагоджувач, компілятор тощо.
  • Він використовує такі важливі класи пакетів, як math, swingetc, util, lang, awt і бібліотеки часу виконання.
  • Якщо треба бігти Java аплети, тоді у вашій системі має бути встановлено JRE.

Чому JVM?

Ось важливі причини використання JVM:

  • JVM забезпечує незалежний від платформи спосіб виконання Java вихідний код.
  • Він має численні бібліотеки, інструменти та фреймворки.
  • Як тільки ви біжите Java програму можна запускати на будь-якій платформі та заощадити багато часу.
  • JVM поставляється з компілятором JIT (Just-in-Time), який перетворює Java вихідний код на машинну мову низького рівня. Отже, він працює швидше, ніж звичайна програма.

Особливості JDK

Ось важливі функції JDK:

  • Це дозволяє обробляти кілька розширень в одному блоці catch.
  • JDK містить усі функції, які має JRE.
  • Він містить інструменти розробки, такі як компілятор, відладчик тощо.
  • JDK надає середовище для розробки та виконання Java вихідний код.
  • Його можна встановити на Windowsопераційні системи , Unix і Mac.
  • Оператор Diamond можна використовувати для визначення інтерфейсу загального типу замість написання точного.

Особливості JRE

Ось важливі функції JRE:

  • Java Середовище виконання — це набір інструментів, за допомогою яких фактично працює JVM.
  • JRE містить технологію розгортання, в т.ч Java Web Start і Java Підключати.
  • Розробники можуть легко запустити вихідний код у JRE, але він/вона не може написати та скомпілювати Java програми.
  • Він включає такі бібліотеки інтеграції, як Java Підключення до бази даних (JDBC), віддалений виклик методів (RMI), Java Інтерфейс іменування та каталогу (JNDI) тощо.
  • JRE має JVM і Java Клієнт віртуальної машини HotSpot.

Особливості JVM

Ось важливі функції JVM:

  • Це дозволяє запускати програми в хмарному середовищі або на вашому пристрої.
  • Java Віртуальна машина перетворює байт-код на машинний код.
  • Він надає такі базові функції Java, як керування пам’яттю, безпека, збирання сміття тощо.
  • JVM запускає програму, використовуючи бібліотеки та файли, надані Java Середовище виконання.
  • JDK і JRE містять Java Віртуальна машина.
  • Він може виконувати програму Java рядок за рядком, тому його також називають інтерпретатором.
  • JVM легко налаштовується, наприклад, ви можете виділити для нього мінімум і максимум пам’яті.
  • Він не залежить від апаратного забезпечення та операційної системи. Отже, ви можете написати програму на Java один раз і запускати її будь-де.

Як працює JDK?

Функції JDK
Функціональність JDK

Ось важливі компоненти JDK:

  • JDK та JRE: JDK дозволяє програмістам створювати ядро Java програми, які можна запускати за допомогою JRE, включаючи JVM і бібліотеки класів.
  • Бібліотеки класів: Це група динамічно завантажуваних бібліотек, які Java програма може викликати під час виконання.
  • Упорядники: Це Java програма, яка приймає текстовий файл розробників і компілює в нього Java файл класу. Це звичайна форма виведення, надана компілятором, яка містить Java байт-код. в Java, первинним компілятором є Javac.
  • Налагоджувачі: Налагоджувач - це a Java програма, яка дозволяє розробникам тестувати та налагоджувати Java програм.
  • JavaДок: JavaDoc — це документація, створена Sun Microsystems для Java. JavaДокумент можна використовувати для створення документації API у файлі HTML із вихідної програми

Як функціонує JRE?

Функції JRE

Функціональність JRE

JRE містить екземпляр JVM, бібліотечні класи та засоби розробки. Як тільки ви напишете та скомпілюєте Java коду, компілятор генерує файл класу з байт-кодом.

Ось важливі компоненти JRE:

  • Завантажувачі класів: Завантажувач класів завантажує різні класи, необхідні для запуску a Java програма. JVM використовує три завантажувачі класів, які називаються початковим завантажувачем класів, завантажувачем класів розширень і завантажувачем системних класів.
  • Верифікатор байт-коду: Верифікатор байт-коду перевіряє байт-код, щоб код не заважав інтерпретатору.
  • Перекладач: Після завантаження класів і перевірки коду інтерпретатор читає код рядок за рядком.
  • час виконання: Час виконання — це система, яка використовується головним чином у програмуванні для опису періоду часу, протягом якого виконується певна програма.
  • Обладнання: Після компіляції Java рідний код, він працює на певній апаратній платформі.

Таким чином Java програма працює в JRE.

Як працює JVM?

Функції JVM

Функціональність JVM

Ось важливі компоненти JVM:

1) Завантажувач класів

Завантажувач класів — це підсистема, яка використовується для завантаження файлів класів. Він виконує три основні функції, а саме. Завантаження, зв'язування та ініціалізація.

2) Область методу

Область методів JVM зберігає структуру класу, наприклад метадані, код для Java методи та постійний пул часу виконання.

3) Купа

Усі об’єкти, масиви та змінні екземплярів зберігаються у купі. Ця пам'ять спільно використовується кількома потоками.

4) Стеки мови JVM

Java Стеки мови зберігають локальні змінні та їх часткові результати. Кожен потік має власний мовний стек JVM, створений одночасно зі створенням потоку. Новий кадр створюється під час виклику методу та видаляється після завершення процесу виклику методу.

5) Регістри ПК

Регістри ПК зберігають адресу Java інструкція віртуальної машини, яка зараз виконується. в Java, кожен потік має окремий регістр ПК.

6) Стеки рідних методів

Стеки рідних методів містять інструкції рідного коду, що залежить від рідної бібліотеки. Він виділяє пам'ять на рідних купах або використовує будь-який тип стека.

7) Механізм виконання

Це тип програмного забезпечення, яке використовується для тестування програмного забезпечення, апаратного забезпечення або повних систем. Механізм виконання тестів ніколи не передає жодної інформації про тестований продукт.

8) Інтерфейс рідного методу

Інтерфейс рідного методу — це структура програмування. Це дозволяє Java код, який виконується в JVM для виклику бібліотек і власних програм.

9) Бібліотеки рідних методів

Native Libraries — це колекція рідних бібліотек (C, C++), які потрібні механізму виконання.

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

Ось основні відмінності між JDK проти JRE та JVM:

JDK JRE JVM
Повна форма JDK є Java Набір для розробки. Повна форма JRE Java Середовище виконання. Повною формою JVM є Java Віртуальна машина.
JDK — це набір для розробки програмного забезпечення Java. Це комплект програмного забезпечення, який забезпечує Java бібліотеки класів з необхідними компонентами для запуску Java Код. JVM виконується Java байт-код і забезпечує середовище для його виконання.
JDK залежить від платформи. JRE також залежить від платформи. JVM не залежить від платформи.
Він містить інструменти для розробки, налагодження та моніторингу коду Java. Він містить бібліотеки класів та інші допоміжні файли, необхідні JVM для виконання програми. Інструменти розробки програмного забезпечення не входять до JVM.
Це надмножина JRE Це підмножина JDK. JVM є підмножиною JRE.
JDK дозволяє розробникам створювати Java програми, які можуть бути виконані та запущені за допомогою JRE та JVM. JRE є частиною Java який створює JVM. Це Java компонент платформи, який виконує вихідний код.
JDK постачається разом із інсталятором. JRE містить лише середовище для виконання вихідного коду. JVM входить до програмного забезпечення JDK і JRE.