Відповіді:
Визначення того, що саме є віртуальною машиною Java, зазначено у програмі специфікації Java Virtual Machine
JVM - це віртуальна машина , тобто програмне забезпечення, яке імітує те, що робить реальна машина. Як і справжня машина, вона має набір інструкцій , архітектуру віртуального комп’ютера та модель виконання. Він здатний виконувати код, написаний за допомогою цього віртуального набору інструкцій, майже так, як реальна машина може запускати машинний код.
HotSpot - це реалізація концепції JVM. Спочатку вона була розроблена компанією Sun, а тепер належить Oracle. Є й інші реалізації специфікації JVM, такі як JRockit , IBM J9 , серед багатьох інших.
Див. Перелік реалізацій віртуальної машини Java
OpenJDK проект , згідно з яким розробляється реалізація з відкритим вихідним кодом від HotSpot (і багатьох інших шматків JDK , наприклад , компілятор, API - інтерфейси, інструменти і т.д.).
OpenJDK (Open Java Development Kit) - це безкоштовна та відкрита реалізація платформи Java, стандартне видання (Java SE). Openjdk - це проект, розпочатий компанією Sun Microsystems, в даний час опікується багатьма компаніями та громадою для створення Java Development Kit абсолютно у відкритому коді. Відповідно до офіційної документації .
OpenJDK - це реалізація специфікацій платформи Java, стандартної версії (Java SE) з відкритим кодом. У травні 2007 року Sun випустила повністю розроблену версію Java Development Kit (JDK) для Java SE для спільноти OpenJDK як безкоштовне програмне забезпечення за версією GNU General Public License 2 (GPLv2). Sun оголосив Тимчасовий правління для спільноти OpenJDK. Sun також оголосив, що на основі OpenJDK реалізацій можна використовувати комплект технічної сумісності Java SE 6 (JCK) для встановлення сумісності зі специфікацією Java SE 6.
Проект OpenJDK складається з ряду компонентів - HotSpot (віртуальна машина) , бібліотека класів Java та компілятор Java Java. Для більш детальної інформації про це відвідайте його сайт .
Поточний JVM, наданий Sun / Oracle, називається HotSpot, тому що він шукає «гарячих точок» використання у коді (місця, де інтенсивніше використовується код) для оптимізації «щойно». З вікіпедії , HotSpot, випущений як «Java HotSpot Performance Engine» є віртуальною машину Java для настільних комп'ютерів і серверів, підтримуваних і розподілених корпорацією Oracle.
Примітка: AdoptOpenJDK змінив назву на Adoptium після переходу до фонду Eclipse наприкінці 2020-06.
Різниця між JVM та HotSpot?
Java Virtual Machine (JVM) є уявним комп'ютер , який ніколи не був фізично побудований в якості апаратних засобів. JVM запускає програми, складені за своїм уявним набором інструкцій, записаним у сховище як проміжне подання, відоме як байт-код .
Під час виконання байт-код повинен бути переведений з уявного набору інструкцій у фактичний набір інструкцій ЦП хост-машини. Це можна зробити на ходу перекладачем. Або байт-код може бути повністю складений і кешований, працювати швидше, ніж через інтерпретатор, в процесі, відомому як компіляція Just-In-Time (JIT) .
Протягом десятиліть було здійснено багато реалізацій СВМ . Більшість відпала.
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 s та JEP s, які визначають платформу Java . Кожна реалізація JVM, яку я знаю сьогодні, повністю або здебільшого базується на кодовій базі OpenJDKі використовує або HotSpot, або OpenJ9.
Крім JVM, OpenJDK також забезпечує реалізацію у вихідному коді для всіх класів, необхідних специфікаціям Java SE, таких як java.lang , java.util , java.time та інші пакети.
Крім того, яка різниця між OpenJDK та HotSpot?
Вихідний код HotSpot розміщується, підтримується та надалі розвивається як частина проекту OpenJDK . Альтернатива, OpenJ9 , розміщується, підтримується та надалі розвивається у Фонді Eclipse , одночасно замінюючи HotSpot в деяких дистрибутивах OpenJDK.
Деякі дистрибутиви технології Java обирають до HotSpot. Деякі дистрибутиви вирішують замінити частину кодової бази OpenJDK, яка є HotSpot, альтернативою OpenJ9 .
Ось графічний графік потоку, який допоможе вам обрати постачальника для розподілу платформи Java.
Як було сказано вище, HotSpot - це кросплатформна реалізація концепції віртуальної машини Java (JVM), яка розповсюджується разом із OpenJDK (Java Developer Kit) відповідно до Загальної публічної ліцензії GNU. HotSpot написаний в основному на C ++ і спочатку був розроблений під Sun Microsystems. Зараз він розробляється в рамках проекту OpenJDK за адресою www.java.net. HotSpot JVM був доступний як доповнення для Java 1.2, а пізніше використовувався як Sun JVM за замовчуванням у Java 1.3. Наразі JVM знаходиться у версії 7, Build b147 та має активну спільноту розвитку.
Для отримання додаткової інформації відвідайте: https://www.java.net/
Щасливе кодування!
JVM - це абстрактна машина (технічні характеристики). HotSpot, OpenJDK і JRockit і так є реалізацією JVM.
Безкоштовні та відкриті реалізації
HotSpot , основна посилання на реалізацію Java VM
OpenJDK - Open Java Development Kit - це безкоштовна та відкрита реалізація, ліцензована згідно з загальною ліцензією GNU GNU (GNU GPL) за винятком посилання.
Власні реалізації
для більшої реалізації
посилання пояснює відмінності між HotSpot та JRocket
HotSpot - це вдосконалена форма хакерства на C ++, для того щоб використовувати її, ви повинні побудувати проти неї, щоб скласти навіть найпростіші речі. Якщо ви не налаштовуєте компілятори та не пишете їх з нуля. HotSpot - це в основному спосіб перетворення вихідного коду в код C ++, а потім його компіляція в початковий код, таким чином, складений термін jit.