JDK, JRE, JVM — Java: Настройка окружения
JVM (Java Virtual Machine) — Виртуальная машина отвечает за само выполнение кода. Она работает с байткодом (тем, что находится внутри файлов с расширением .class).
JRE (Java Runtime Environment) — окружение, необходимое для запуска Java-программ. Включает в себя стандартную библиотеку. В нее входят, как базовые пакеты lang, util, так и пакеты для работы с различными форматами, базами данных, пользовательским интерфейсом. JVM тоже часть JRE.
JDK (Java Development Kit) — набор программ для разработки. Именно его мы (или редактор) устанавливаем к себе на компьютер, чтобы заниматься разработкой на Java. Он включает в себя JRE, загрузчик кода java, компилятор javac, архиватор jar, генератор документации javadoc и другие утилиты, нужные во время разработки.
Write once, run anywhere
Java — компилируемый язык. Обычно, когда говорят про такие языки, подразумевают, что компилятор берет исходный код и превращает его в машинный код, заточенный под конкретную архитектуру (машинный код у разных архитектур разный) и операционную систему. Так происходит во многих си-подобных языках. На выходе получаются файлы, каждый из которых может запуститься только на своей комбинации архитектуры и операционной системы.
# Компиляция Go программы для двух разных комбинаций GOOS=linux GOARCH=arm go build path/to/file GOOS=windows GOARCH=amd64 go build path/to/file
Для запуска таких программ больше ничего не нужно. Достаточно перенести их на нужную систему и запустить штатными средствами. Такие программы работают очень быстро, так как оптимизированы под конкретные условия.
# Запуск на Windows hexlet.exe
Java устроена по-другому. Разработчики попытались обеспечить кроссплатформенность готовой программы, за счет введения виртуальной машины. Кроссплатформенность, способность программы запускаться на разных платформах (архитектура процессора и операционная система) без необходимости компилировать код под эти системы. Как это работает?
Ядро Java это JVM. Виртуальный процессор, со своим набором команд, который придумали создатели Java. Компилятор готовит код именно под эту единую JVM. Например, код:
for (int i = 2; i 1000; i++) for (int j = 2; j i; j++) if (i % j == 0) continue outer; > System.out.println (i); >
После компиляции превращается в:
JVM выполняет байткод построчно и транслирует его в реальный машинный код, специфичный для той архитектуры, на которой он запускается.
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Java
Oracle Java — язык программирования и платформа разработки № 1 в мире. Он уменьшает затраты, сокращает сроки разработки, стимулирует инновации и совершенствует сервисы приложений. Миллионы разработчиков, более 60 миллиарда работающих виртуальных машин Java во всем мире — Java продолжает оставаться предпочтительной платформой разработки для компаний и разработчиков.
Выпуск Java 20 уже доступен
Новый, вышедший впервые за полгода, выпуск Java 20 позволяет еще больше повысить производительность, стабильность и безопасность разработки приложений Java.
Oracle GraalVM бесплатно на OCI
Создавайте собственные исполняемые файлы, которые помогают приложениям быстро запускаться, потреблять меньше ресурсов памяти и сокращать затраты на услуги хостинга.
Java Management Service
Функции Advanced JMS помогают администраторам получить дополнительные сведения о рабочих нагрузках Java. Анализ уязвимостей, применения и влияния обновлений Cryptographic Roadmap.
День разработчика Java на Oracle DevLive 2023
Ознакомьтесь с основным докладом на сайте DevLive Level Up и узнайте об усовершенствованиях в выпуске Java 20 для AppDev, современных инновациях в области языков программирования и поддержке платформ разработки Java.
Аналитические отчеты Java
Java и искусство стимулирования цифровой трансформации
Получите представление о том, как использовать Java для поддержки работ по модернизации и трансформации. Узнайте в этом техническом бюллетене по Omdia, как получить максимальную выгоду от решений с открытым кодом, cloud native и возможностей службы поддержки.
Java: модернизация разработки безопасных облачных приложений
Узнайте, как Java помогает организациям ускорить цифровое преобразование и свести к минимуму уязвимости при разработке современных приложений.
Важнейшие проблемы ИТ-безопасности и соответствия нормативным требованиям в разработке приложений
Согласно недавнему отчету 451 Research, безопасность остается главным приоритетом для ИТ-руководителей. Читать информационную сводку, чтобы узнать об основных проблемах в сфере безопасности для разработчиков и о том, как можно достичь целей в области ИТ-безопасности и соответствия требованиям с помощью Java.
Aberdeen: краткий обзор
Узнайте, почему лидеры в разработке приложений используют Java, чтобы более эффективно создавать приложения мирового уровня, высочайшего качества и максимальной безопасности.
Java
Oracle Java is the #1 programming language and development platform. It reduces costs, shortens development timeframes, drives innovation, and improves application services. With millions of developers running more than 60 billion Java Virtual Machines worldwide, Java continues to be the development platform of choice for enterprises and developers.
Java 20 is now available
The next release in the six-month cadence, Java 20, improves the performance, stability, and security of Java application development.
Oracle GraalVM free on OCI
Build native executables that help applications start up fast, reduce memory usage, and save hosting costs.
Java Management Service
JMS Advance features help administrators gain additional insights into Java workloads. Analyze usage, vulnerabilities, and impact from Cryptographic Roadmap updates.
Java Developer Day at Oracle DevLive 2023
Watch the keynote at DevLive Level Up and learn about the Java 20 release enhancements for AppDev, modern language innovations, and support for Java developer frameworks.
Java analyst reports
Java and the Art of Driving Digital Transformation
Get insights on how to leverage Java to support your modernization and transformation efforts. Learn how to get the most out of open source, cloud native, and support service capabilities in this Omdia technical brief.
Java: Modernizing Development for Secure, Cloud-Based Applications
Learn how Java helps organizations accelerate digital transformation while minimizing vulnerabilities for today’s application needs.
Top IT security and compliance pain points in application development
Security remains the most important priority for IT executives, according to a recent report from 451 Research. Read the brief to find out the top security concerns for developers and how you can achieve your IT security and compliance goals with Java.
Aberdeen Knowledge Brief
Learn why leaders in application development use Java to more efficiently build world-class applications the highest quality and the strongest security.
При подготовке материала использовались источники:
https://ru.hexlet.io/courses/java-setup-environment/lessons/overview/theory_unit
https://www.oracle.com/cis/java/
https://www.oracle.com/java/