Ответы:
Определение того, что именно является виртуальной машиной Java, указано в спецификации виртуальной машины Java.
JVM по определению является виртуальной машиной , то есть программной машиной, которая имитирует действия реальной машины. Как реальная машина, она имеет набор команд , архитектуру виртуального компьютера и модель исполнения. Он способен выполнять код, написанный с помощью этого набора виртуальных команд, почти так же, как реальная машина может выполнять машинный код.
HotSpot - это реализация концепции JVM. Первоначально он был разработан Sun и теперь принадлежит Oracle. Существуют и другие реализации спецификации JVM, такие как JRockit , IBM J9 и многие другие.
См. Список реализаций виртуальной машины Java.
OpenJDK проект , согласно которому разрабатывается реализация с открытым исходным кодом от HotSpot (и многих других кусков JDK , например , компилятор, API - интерфейсы, инструменты и т.д.).
OpenJDK (Open Java Development Kit) - это бесплатная реализация с открытым исходным кодом Java Platform, Standard Edition (Java SE). Openjdk - это проект, начатый Sun Microsystems, в настоящее время многие компании и сообщество заботятся о создании Java Development Kit абсолютно в открытом коде. Согласно официальной документации .
OpenJDK - это реализация стандартов Java Platform, Standard Edition (Java SE) с открытым исходным кодом. В мае 2007 года Sun выпустила полностью готовую версию Java Development Kit (JDK) для Java SE для сообщества OpenJDK в качестве бесплатного программного обеспечения под общедоступной лицензией GNU версии 2 (GPLv2). Sun объявила о создании временного совета управляющих сообщества OpenJDK. Sun также объявила, что реализации на основе OpenJDK могут использовать комплект технической совместимости Java SE 6 (JCK) для установления совместимости со спецификацией Java SE 6.
Проект OpenJDK состоит из нескольких компонентов - HotSpot (виртуальная машина) , библиотека классов Java и компилятор Java javac. Для получения дополнительной информации посетите его сайт .
Текущая JVM, предоставляемая Sun / Oracle, называется HotSpot, потому что она ищет горячие точки использования в коде (места, где код используется более интенсивно) для оптимизации «точно в срок». Из википедии , HotSpot, выпущенный как «Java HotSpot Performance Engine» представляет собой виртуальную машину Java для настольных компьютеров и серверов, поддерживаемых и распределенных корпорацией Oracle.
Примечание: AdoptOpenJDK изменил свое название на Adoptium после перехода в Eclipse Foundation в конце 2020-06 гг.
Разница между JVM и HotSpot?
Java Virtual Machine (JVM) является мнимым компьютер , который никогда не был физически построен в качестве аппаратных средств. JVM запускает программы, скомпилированные с ее воображаемым набором команд, записанным в хранилище в качестве промежуточного представления, известного как байт-код .
Во время выполнения байт-код должен быть преобразован из набора воображаемых команд в фактический набор команд ЦП хост-машины. Это может быть сделано на лету переводчиком. Или байт-код может быть полностью скомпилирован и кэширован, чтобы выполняться быстрее, чем через интерпретатор, в процессе, известном как JIT-компиляция .
За десятилетия было много реализаций JVM . Большинство отпало.
HotSpot - это одна из реализаций технологии JIT, которая начинается с интерпретации и отслеживает фактическую производительность приложения. Затем части приложения выбираются для полной компиляции в виде нативного кода и кэширования для более быстрого выполнения. HotSpot был разработан в Sun как коммерческий продукт. После приобретения Sun Oracle продолжил развитие HotSpot, объединив важные части своего конкурирующего продукта JRockit . HotSpot теперь с открытым исходным кодом черезпроект OpenJDK , доступный бесплатно.
Еще одна такая реализация в OpenJ9 , разработанная IBM, и теперь с открытым исходным кодом через Eclipse Foundation и доступна бесплатно. Некоторые дистрибутивы JVM, построенные на OpenJDK, заменяют HotSpot на OpenJ9, в то же время все еще используя остальную часть OpenJDK, например библиотеки классов Java SE . Например, готовые дистрибутивы, доступные в AdoptOpenJDK, предоставляют выбор HotSpot или OpenJ9 на некотором оборудовании.
Диаграмма, показывающая историю слияния HotSpot и JRockit и OpenJ9, доступных в AdoptOpenJDK.
Что такое HotSpot и как он связан с JVM и OpenJDK? Это библиотека? Что именно это делает?
OpenJ9 обычно известен намного более быстрым запуском и намного более низким использованием памяти на начальном этапе, в то время как HotSpot может работать более эффективно в целом для долго работающих приложений. И то, и другое хорошо известно, доступно и доступно в дистрибутивах OpenJDK.
OpenJDK - это проект с открытым исходным кодом, который полностью реализует спецификации Java , JSR и JEP, которые определяют платформу Java . Каждая реализация JVM, о которой я знаю сегодня, полностью или в основном основана на кодовой базе OpenJDKи использует технологию HotSpot или OpenJ9.
Помимо JVM, OpenJDK также обеспечивает реализацию в исходном коде для всех классов, требуемых спецификациями Java SE, таких как java.lang , java.util , java.time и другие пакеты.
Кроме того, в чем разница между OpenJDK и HotSpot?
Исходный код для HotSpot размещается, поддерживается и дорабатывается в рамках проекта OpenJDK . Альтернатива, OpenJ9 , размещается, поддерживается и дорабатывается в Eclipse Foundation , заменяя HotSpot в некоторых дистрибутивах OpenJDK.
Некоторые дистрибутивы технологии Java предпочитают поставлять с HotSpot. Некоторые распределения выбирают заменить часть OpenJDK кодового , который HotSpot с альтернативой, OpenJ9 .
Вот графическая схема, которая поможет вам выбрать поставщика для распространения платформы Java.
HotSpot, как упоминалось выше, является кроссплатформенной реализацией Концепции виртуальной машины Java (JVM) и распространяется вместе с OpenJDK (Java Developer Kit) в соответствии с GNU General Public License. HotSpot написан в основном на C ++ и изначально разрабатывался под управлением Sun Microsystems. В настоящее время он разрабатывается в рамках проекта OpenJDK по адресу www.java.net. HotSpot JVM была доступна в качестве дополнения для Java 1.2, а затем использовалась как Sun JVM по умолчанию в Java 1.3. В настоящее время JVM находится в версии 7, сборка b147, и за ней стоит активное сообщество разработчиков.
Для получения дополнительной информации перейдите: https://www.java.net/
Удачного кодирования!
JVM - это абстрактная машина (спецификации). HotSpot, OpenJDK и JRockit и так далее являются реализациями JVM.
Бесплатные и открытые реализации
HotSpot , основная эталонная реализация Java VM
OpenJDK - Open Java Development Kit - это бесплатная реализация с открытым исходным кодом, распространяемая по лицензии GNU General Public License (GNU GPL), за исключением ссылок.
Собственные реализации
для большего количества реализаций
ссылка объясняет различия между HotSpot и JRocket
HotSpot - это продвинутая форма взлома C ++, чтобы использовать его, вы должны использовать его для компиляции даже самых простых вещей. Если только вы не настраиваете компиляторы и не пишете их с нуля. HotSpot - это, по сути, способ преобразования исходного кода в код C ++, а затем компиляции его в нативный код, поэтому скомпилирован термин jit.