В чем разница между JVM, JDK, JRE и OpenJDK?

В чем разница между JVM , JDK , JRE и OpenJDK ?

Я программировал на Java, и я столкнулся с этими фразами, каковы различия между ними?

    JVM

    Виртуальная машина Java (JVM) – это виртуальная машина, на которой запущены байт-коды Java. JVM не понимает исходный код Java, поэтому вы компилируете ваши файлы *.java для получения файлов *.class , содержащих байт-коды, понятные JVM. Это также сущность, которая позволяет Java быть «переносным языком» ( писать один раз, работать в любом месте ). Действительно, существуют конкретные реализации JVM для разных систем (Windows, Linux, MacOS, см. Список Википедии ), цель состоит в том, что с одинаковыми байткодами они дают одинаковые результаты.

    JDK и JRE

    Чтобы объяснить разницу между JDK и JRE, лучше всего прочитать документацию Oracle и ознакомиться с диаграммой:

    Java Runtime Environment (JRE)

    Java Runtime Environment (JRE) предоставляет библиотеки, виртуальную машину Java и другие компоненты для запуска апплетов и приложений, написанных на языке программирования Java. Кроме того, две ключевые технологии развертывания являются частью JRE: Java Plug-in, которая позволяет апплетам работать в популярных браузерах; и Java Web Start, которая развертывает автономные приложения по сети. Он также является основой технологий Java 2 Platform, Enterprise Edition (J2EE) для разработки и развертывания корпоративного программного обеспечения. JRE не содержит инструментов и утилит, таких как компиляторы или отладчики для разработки апплетов и приложений.


    Java Development Kit (JDK)

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

    Обратите внимание, что Oracle не единственный, кто предоставляет JDK.

    OpenJDK

    OpenJDK является открытым исходным кодом Java SE 7 JSR ( JSR 336 ). Теперь практически нет разницы между Oracle JDK и OpenJDK. В прошлом году Oracle приняла это решение: переход на OpenJDK в качестве официальной реализации Java SE 7 Reference

    Различия указаны в этом блоге :

    В: В чем разница между исходным кодом, найденным в репозитории OpenJDK, и кодом, который вы используете для создания Oracle JDK?

    О: Это очень близко – наш процесс сборки для выпусков Oracle JDK основывается на OpenJDK 7, добавив всего пару штук, таких как код развертывания, который включает в себя реализацию Oracle Java Plugin и Java WebStart, а также третий закрытый третий сторонние компоненты, такие как графический растеризатор, некоторые сторонние компоненты с открытым исходным кодом, такие как Rhino, и несколько бит и частей здесь и там, например, дополнительная документация или сторонние шрифты. Двигаясь вперед, наша цель состоит в том, чтобы открыть исходные тексты всех компонентов Oracle JDK, кроме тех, которые мы рассматриваем как коммерческие функции, такие как JRockit Mission Control (еще недоступные в Oracle JDK), и заменить обремененные сторонние компоненты альтернативами с открытым исходным кодом для достижения более близкого соотношения между базами кода.

    В зависимости от используемой версии виртуальная машина может отличаться: соответствие между версиями Sun / Oracle JDK, OpenJDK и HotSpot VM

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

    OpenJDK – это конкретная реализация JDK.

    JDK (Java Development Kit)

    Java Developer Kit содержит инструменты, необходимые для разработки Java-программ, и JRE для запуска программ. Инструменты include компилятор (javac.exe), приложение для запуска Java (java.exe), Appletviewer и т. Д. …

    Компилятор преобразует Java-код в байтовый код. Java-приложение запускает JRE, загружает class и вызывает его основной метод.

    Вам нужен JDK, если вы вообще хотите написать свои собственные программы и скомпилировать их. Для запуска java-программ достаточно JRE.

    JRE предназначена для выполнения файлов Java

    т.е. JRE = JVM + Java Packages Classes (например, util, math, lang, awt, swing и т. д.) + библиотеки времени исполнения.

    JDK в основном ориентирован на развитие Java. Т.е. вы можете создать файл Java (с помощью пакетов Java), скомпилировать файл Java и запустить java-файл.

    JRE (Java Runtime Environment)

    Java Runtime Environment содержит JVM, библиотеки classов и другие поддерживающие файлы. Он не содержит каких-либо средств разработки, таких как компилятор, отладчик и т. Д. На самом деле JVM запускает программу и использует библиотеки classов и другие поддерживающие файлы, представленные в JRE. Если вы хотите запустить любую Java-программу, вам необходимо установить JRE в систему

    Виртуальная машина Java обеспечивает независимый от платформы способ выполнения кода; Это означает компиляцию один раз на любой машине и запускать ее где угодно (любая машина).

    JVM (виртуальная машина Java)

    Как мы все знаем, когда мы скомпилируем Java-файл, вывод не является «exe», но является файлом «.class». Файл .class состоит из Java-байтовых кодов, которые понятны JVM. Java Virtual Machine интерпретирует байтовый код в машинный код в зависимости от базовой операционной системы и аппаратной комбинации. Он отвечает за все такие вещи, как garbage collection, проверка границ массивов и т. Д. JVM зависит от платформы.

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

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

    Виртуальная машина Java (JVM) – это виртуальная машина, которая может выполнять байт-код Java. Это компонент выполнения кода программной платформы Java.

    Java Development Kit (JDK) – продукт Oracle Corporation, предназначенный для разработчиков Java. С момента внедрения Java он стал самым широко используемым пакетом разработки программного обеспечения Java (SDK).

    Java Runtime Environment , также называется Java Runtime, среда выполнения

    OpenJDK (Open Java Development Kit) – это бесплатная версия Java-программирования с открытым исходным кодом. Это результат усилий Sun Microsystems, начатых в 2006 году. Реализация лицензируется в соответствии с GNU General Public License (GPL) с исключением ссылок.

    Просто:

    JDK (Java Development Kit):

    • содержит инструменты, необходимые для разработки Java-программ.
    • Вам нужен JDK, если вы вообще хотите написать свои собственные программы и скомпилировать их.
    • JDK в основном ориентирован на развитие Java.

    JRE (Java Runtime Environment)

    Java Runtime Environment содержит JVM, библиотеки classов и другие поддерживающие файлы. JRE предназначен для выполнения файлов Java.

    JVM (виртуальная машина Java)

    JVM интерпретирует байтовый код в машинный код в зависимости от базовой операционной системы и аппаратной комбинации. Он отвечает за все такие вещи, как garbage collection, проверка границ массивов и т. Д. Java Virtual Machine обеспечивает независимый от платформы способ выполнения кода.

    JVM – это Java-код виртуальной машины, выполняемый на

    JRE – это среда (стандартные библиотеки и JVM), необходимые для запуска приложений Java

    JDK – это JRE с инструментами разработчика и документацией

    OpenJDK – это версия JDK с открытым исходным кодом, в отличие от обычного JDK, принадлежащего Oracle

    JDK – компилирует java в байтовый код. Состоит из отладчиков, компиляторов и т. Д.

     javac file.java // Is executed using JDK 

    JVM – Выполняет байтовый код. JVM – это тот, который делает независимую платформу Java. Но JVM варьируется для платформ.

    JRE – JVM вместе с библиотеками времени java для запуска java-программ.

    Еще один аспект, который стоит упомянуть:

    JDK (комплект разработки java)

    Вы будете нуждаться в ней для целей развития, как это предлагает название.

    Например: компания-разработчик программного обеспечения будет устанавливать JDK на своем компьютере, потому что им нужно будет разработать новое программное обеспечение, которое включает в себя компиляцию и запуск своих программ Java.

    Таким образом, мы можем сказать, что JDK = JRE + JVM.

    JRE (среда выполнения java)

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

    Например: обычный пользователь компьютера, который хочет запустить некоторые онлайн-игры, тогда в его системе потребуется JRE для запуска программ Java.

    JVM (виртуальная машина Java)

    Как вы знаете, он запускает байт-коды. Это делает платформу Java независимой, поскольку она выполняет файл .class который вы получаете после компиляции Java-программы, независимо от того, компилируете ли вы ее в Windows, Mac или Linux.

    Открыть JDK

    Ну, как я сказал выше. Теперь JDK создается другой компанией, одна из которых, которая является открытым исходным кодом и бесплатна для публичного использования, – OpenJDK, а некоторые другие – JRockit JDK от Oracle Corporation или IBM JDK.

    Однако все они могут казаться одинаковыми для обычного пользователя.

    Вывод

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

    Другими словами, JDK – дед JRE – отец, а JVM – их сын.

    JRE – означает время выполнения Java, и для запуска приложения Java требуется.

    JDK – означает набор для разработки Java и предоставляет инструменты для разработки Java-программы, например Java-компилятора. Он также содержит JRE.

    JVM – означает виртуальную машину Java, и это процесс, отвечающий за запуск приложения Java.

    JIT – означает компиляцию Just In Time и помогает повысить производительность Java-приложения, преобразовывая Java-байтовый код в собственный код, когда перекрестный определенный порог, т.е. в основном горячий код, преобразуется в собственный код.

    Java – это язык и включает строгий и строго типизированный синтаксис, с которым вы должны быть очень хорошо знакомы.

    Платформа Java 2, стандартная версия, также известная как J2SE, относится к платформе и включает в себя classы в пакетах java.lang и java.io. Это был строительный блок, на котором были построены Java-приложения.

    Виртуальная машина Java или JVM – это виртуальная машина программного обеспечения, которая запускает скомпилированный Java-код. Поскольку скомпилированный Java-код является просто байт-кодом, JVM отвечает за компиляцию этого байт-кода в машинный код перед его запуском. (Это часто называют компилятором Just In Time или JIT-компилятором.) JVM также занимается управлением памятью, поэтому код приложения не требуется.

    Java Development Kit, или JDK, был и остается частью программного обеспечения, которое разработчики Java используют для создания приложений Java. Он содержит компилятор языка Java, генератор документации, инструменты для работы с собственным кодом и (как правило) исходный код Java для платформы для включения classов отладки платформы.

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

    Простыми словами:

    JVM: спецификация, которая описывает способ / ресурсы для запуска java-программы. На самом деле выполняет байтовый код и делает независимую платформу Java. При этом он отличается для разных платформ. JVM для окон не может работать как JVM для UNIX.

    JRE: Внедрение JVM. (Библиотеки времени выполнения JVM +)

    JDK: JRE + java компилятор и другие необходимые инструменты для создания Java-программы с нуля

    JVM : это фактически означает интерпретатор байтового кода. Он зависит от платформы. Например, в платформе Windows прецессия « java.exe » или « javaw.exe » является процессом jvm.

    JDK : это набор инструментов, содержащий необходимые библиотеки и утилиты для разработки и выполнения java-программы / приложения

    JRE : среда исполнения для java application.ie, она поддерживает только зависящие от времени исполнения зависимости, включая jvm для скомпилированной программы. Если мы хотим скомпилировать java-программу, нам нужно jdk.

    JVM: виртуальная машина Java. сообщает машине, что делать с кодом Java. Вы не можете загрузить JVM как есть. Он поставляется в одном компоненте.

    JRE: Некоторые другие компоненты, упомянутые выше, являются JRE. Это JVM + другие банки для создания среды среды выполнения

    JDK: содержит JRE (который, в свою очередь, содержит JVM). Как только вы получаете JDK, вам не нужно устанавливать JRE и JVM отдельно. Он содержит компилятор, который компилирует ваши .java-файлы в файлы .class

    JVM

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

    JRE

    JRE является аббревиатурой для Java Runtime Environment.It используется для обеспечения среды выполнения. Это реализация JVM.It физически существует. Она содержит набор библиотек + другие файлы, которые JVM использует во время выполнения.

    JDK

    JDK является акронимом для Java Development Kit. Он физически существует. Он содержит инструменты разработки JRE +.

    Ссылка: – http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

    JVM Java Virtual Machine, фактически исполняет java-байт-код. Это блок исполнения на платформе JAVA. Он преобразует байт-код в машинный код.

    JRE Java Runtime Environment, предоставляет минимальные требования для выполнения Java-приложения; он состоит из виртуальной машины Java (JVM), основных classов и поддерживающих файлов.

    JDK Java Development Kit, у него есть все инструменты для разработки вашего прикладного программного обеспечения. Это как JRE + JVM

    Open JDK – бесплатная и открытая реализация платформы Java.

    В условиях неспециалиста: – JDK = JRE + Средства разработки / отладки , где JDK – это наш полный пакет для работы с Java, от создания компиляции до его запуска. С другой стороны, JRE – это просто код (Байт-код).

    Примечание. – Если мы устанавливаем JDK или JRE, JVM будет поставляться вместе с пакетами, а JVM – это часть, в которой JIT-компилятор преобразует байтовый код в машинный код.

    Просто прочитайте статью о JDK, JRE, JVM и JIT

    JDK : полный пакет, который вам нужно написать и запустить Java-код

    OpenJDK : независимая реализация JDK для ее улучшения

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

    JRE : реализация JVM, с помощью которой используются некоторые библиотеки Java для запуска программы

    JRE выполняет приложение, но JVM читает инструкции по строкам так, что это интерпретатор.

    JDK = JRE + Средства разработки

    JRE = JVM + Библиотечные classы

    Давайте будем гением компьютера.