Учебники

68) JDK против JRE против JVM

Что такое JDK?

JDK – это среда разработки программного обеспечения, используемая для создания апплетов и приложений Java. Полная форма JDK – Java Development Kit. Разработчики Java могут использовать его в Windows, macOS, Solaris и Linux. JDK помогает им кодировать и запускать программы на Java. На одном компьютере можно установить более одной версии JDK.

В этом уроке вы узнаете:

Что такое JRE?

JRE – это часть программного обеспечения, предназначенная для запуска другого программного обеспечения. Он содержит библиотеки классов, класс загрузчика и JVM. Проще говоря, если вы хотите запустить Java-программу, вам нужна JRE. Если вы не программист, вам не нужно устанавливать JDK, а просто JRE для запуска программ на Java. Тем не менее, все версии JDK поставляются в комплекте с Java Runtime Environment, поэтому вам не нужно загружать и устанавливать JRE отдельно на вашем ПК. Полная форма JRE – Java Runtime Environment.

Что такое JVM?

JVM – это механизм, обеспечивающий среду выполнения для управления Java-кодом или приложениями. Он преобразует байт-код Java в машинный язык. JVM является частью Java Run Environment (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 и runtime.
  • If you have to run Java applets, then JRE must be installed in your system.

Why JVM?

Here are the important reasons of using JVM:

  • JVM provides a platform-independent way of executing Java source code.
  • It has numerous libraries, tools, and frameworks.
  • Once you run Java program, you can run on any platform and save lots of time.
  • JVM comes with JIT(Just-in-Time) compiler that converts Java source code into low-level machine language. Hence, it runs more faster as a regular application.

Features of JDK

Here are the important features of JDK:

  • It enables you to handle multiple extensions in a single catch block.
  • JDK includes all features that JRE has.
  • It contains development tools such as a compiler, debugger, etc.
  • JDK provides the environment to develop and execute Java source code.
  • It can be installed on Windows, Unix, and Mac operating systems.
  • Diamond operator can be used in specifying a generic type interface instead of writing the exact one.

Features of JRE

Here are the important features of JRE:

  • Java Runtime Environment is a set of tools using which the JVM actually runs.
  • JRE contains deployment technology, including Java Web Start and Java Plug-in.
  • Developers can easily run the source code in JRE, but he/she cannot write and compile the Java program.
  • It includes integration libraries like Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI), and more.
  • JRE has JVM and Java HotSpot virtual machine client.

Features of JVM

Here are the important features of JVM:

  • It enables you to run applications in a cloud environment or in your device.
  • Java Virtual Machine converts byte code to the machine-specific code.
  • It provides basic java functions like memory management, security, garbage collection, and more.
  • JVM runs the program by using libraries and files given by Java Runtime Environment.
  • JDK and JRE both contain Java Virtual Machine.
  • It can execute the java program line by line hence it is also called as interpreter.
  • JVM is easily customizable for example, you can allocate minimum and maximum memory to it.
  • It is independent from hardware and the operating system. So, you can write a java program once and run anywhere.

How JDK Functions?

JDK Functionality

Here are the important components of JDK:

  • JDK and JRE: The JDK enables programmers to create core Java programs that can be run by the JRE, which included JVM and class libraries.
  • Библиотеки классов: это группа динамически загружаемых библиотек, которые Java-программа может вызывать во время выполнения.
  • Компиляторы: это Java-программа, которая принимает текстовые файлы разработчиков и компилирует в файл классов Java. Это распространенная форма вывода данных, предоставляемая компилятором, которая содержит байт-код Java. В Java основным компилятором является Javac.
  • Отладчики. Отладчик – это Java-программа, которая позволяет разработчикам тестировать и отлаживать Java-программы.
  • JavaDoc: JavaDoc – это документация, созданная Sun Microsystems для Java. JavaDoc можно использовать для генерации документации API в HTML-файле из исходной программы.

Как функционирует JRE?

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

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

Вот важные компоненты JRE:

  • Загрузчики классов: Загрузчик классов загружает различные классы, необходимые для запуска Java-программы. JVM использует три загрузчика классов, называемых загрузчиком классов начальной загрузки, загрузчиком классов расширений и системным загрузчиком классов.
  • Верификатор байт-кода: Верификатор байт-кода проверяет байт-код, чтобы код не мешал интерпретатору.
  • Интерпретатор: После загрузки классов и проверки кода интерпретатор построчно считывает код.
  • Время выполнения: время выполнения – это система, используемая в основном в программировании для описания периода времени, в течение которого выполняется конкретная программа.
  • Аппаратное обеспечение: после компиляции собственного кода Java он запускается на определенной аппаратной платформе.

Таким образом, Java-программа работает в JRE.

Как функционирует JVM?

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

Вот важные компоненты JVM:

1) Класс Loader

Загрузчик классов – это подсистема, используемая для загрузки файлов классов. Он выполняет три основные функции, а именно. Загрузка, связывание и инициализация.

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

Область методов JVM хранит структуру класса, такую ​​как метаданные, код для методов Java и постоянный пул времени выполнения.

3) куча

Все объекты, массивы и переменные экземпляра хранятся в куче. Эта память распределяется между несколькими потоками.

4) Языковые стеки JVM

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

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

Регистры ПК хранят адрес инструкции виртуальной машины Java, которая в данный момент выполняется. В Java каждый поток имеет свой отдельный регистр ПК.

6) Стеки родного метода

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

7) Исполнение двигателя

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

8) интерфейс родного метода

Интерфейс Native Method представляет собой среду программирования. Он позволяет коду Java, который выполняется в JVM, вызываться библиотеками и собственными приложениями.

9) Библиотеки нативных методов

Собственные библиотеки – это коллекция Собственных библиотек (C, C ++), которые необходимы для механизма исполнения.

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

Вот основные различия между JDK против JRE и JVM:

JDK JRE JVM
Полная форма JDK – Java Development Kit. Полная форма JRE – Java Runtime Environment. Полная форма 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.

ОСНОВНЫЕ РАЗЛИЧИЯ

  • JDK – это набор средств для разработки программного обеспечения, тогда как JRE – это пакет программ, позволяющий запускать программы на Java, тогда как JVM – это среда для выполнения байт-кода.
  • Полной формой JDK является Java Development Kit, в то время как полной формой JRE является Java Runtime Environment, а полной формой JVM является виртуальная машина Java.
  • JDK зависит от платформы, JRE также зависит от платформы, но JVM не зависит от платформы.
  • JDK содержит инструменты для разработки, отладки и т. Д. JRE содержит библиотеки классов и другие вспомогательные файлы, тогда как инструменты разработки программного обеспечения не включены в JVM.
  • JDK поставляется с установщиком, с другой стороны, JRE содержит только среду для выполнения исходного кода, тогда как JVM входит в состав как программного обеспечения JDK, так и JRE.