В чем разница между 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ы

    Interesting Posts

    Кнопка «Отправить форму» работает только после перезагрузки

    Как отключить VsHub.exe на панели задач?

    Могу ли я использовать более 16 ГБ оперативной памяти для Windows 7 Home Premium?

    Восстановление удаленных данных на SSD / USB Flash

    Как получить идентификатор задачи карты в Spark?

    Передача массива строк между действиями android

    MediaButtonIntentReceiver не работает в Android 4.0+

    Как вы используете данные модуля Fortran 90

    Авторитарная позиция дублирования ключей HTTP GET

    Невозможно загрузить флешку на материнскую плату GIGABYTE

    Компьютерный вентилятор, начинающий шуметь, не может отвинтить ноутбук. Получил решение?

    Виртуальная машина (VirtualBox) – Как получить доступ к файлам с хостинга?

    Необходимо, чтобы Woocommerce разрешала только 1 продукт в корзине. Если продукт уже находится в корзине, а еще один добавлен, он должен удалить предыдущие 1

    Запрос AJAX с телефона Android

    spark.sql.crossJoin.enabled для Spark 2.x

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