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

Разница между JDK, JRE и JVM является одним из популярных вопросов на собеседованиях. Вам также могут попросить объяснить JDK против JRE против JVM.

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

JDK, JRE и JVM являются основными концепциями языка программирования Java. Мы не используем эти концепции в программировании. Однако, как разработчик Java, мы должны знать о них.

1. JDK

Java Development Kit, также известный как JDK, является основным компонентом среды выполнения Java и предоставляет все необходимые инструменты, исполняемые файлы и бинарные файлы для компиляции, отладки и выполнения программ на Java. JDK является платформо-специфичным программным обеспечением, поэтому у нас есть отдельные установщики для Windows, Mac и Unix систем. Мы можем сказать, что JDK является надмножеством JRE, поскольку он содержит JRE с компилятором Java, отладчиком и основными классами.

2. JVM

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

3. JRE

JRE – это реализация JVM. Она предоставляет платформу для выполнения программ на Java. JRE включает в себя JVM, бинарные файлы Java и другие классы, необходимые для успешного выполнения программы. JRE не содержит инструментов разработки, таких как компилятор Java, отладчик, JShell и т. д. Если вам нужно только выполнить программу на Java, вы можете установить только JRE. Вам не нужно JDK, поскольку не требуется разработка или компиляция исходного кода Java. Теперь, когда у нас есть базовое представление о JDK, JVM и JRE, давайте рассмотрим их различия.

JDK vs JRE vs JVM

Давайте рассмотрим некоторые из важных различий между JDK, JRE и JVM.

  1. JDK предназначен для разработки, в то время как JRE предназначен для запуска программ на языке Java.
  2. Как JDK, так и JRE содержат JVM, чтобы мы могли запускать наши программы на языке Java.
  3. JVM является сердцем языка программирования Java и обеспечивает платформенную независимость.

Just-in-time компилятор (JIT)

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

Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm