Разница между 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.
- JDK предназначен для разработки, в то время как JRE предназначен для запуска программ на языке Java.
- Как JDK, так и JRE содержат JVM, чтобы мы могли запускать наши программы на языке Java.
- 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