Что такое JVM? Java Виртуальная машина Archiтекстура
Что такое JVM в Java?
Java Виртуальная машина (JVM) это движок, который обеспечивает среду выполнения для управления Java Код или приложения. Он преобразует Java байт-код на машинный язык. JVM является частью Java Среда выполнения (JRE). В других языках программирования компилятор создает машинный код для конкретной системы. Однако, Java компилятор создает код для виртуальной машины, известной как Java Виртуальная машина.
Как работает JVM?
Первое Java Код компилируется в байт-код. Этот байт-код интерпретируется на разных машинах. Между хост-системой и Java источник, Bytecode — это промежуточный язык. JVM в Java отвечает за распределение пространства памяти.

В этом руководстве по JVM вы узнаете:
Archiструктура JVM (Java Виртуальная машина)
Теперь в этом руководстве по JVM давайте разберемся Architecture of JVM. Архитектура JVM в Java содержит загрузчик классов, область памяти, механизм выполнения и т. д.
1) Загрузчик классов
Загрузчик классов — это подсистема, используемая для загрузки файлов классов. Он выполняет три основные функции, а именно. Загрузка, связывание и инициализация.
2) Область метода
Область методов JVM хранит структуры классов, такие как метаданные, пул констант времени выполнения и код методов.
3) Куча
Все Объекты, связанные с ними переменные экземпляра и массивы хранятся в куче. Эта память является общей и используется несколькими потоками.
4) Стеки языка JVM
Java Языковые стеки хранят локальные переменные и их частичные результаты. Каждый поток имеет свой собственный стек JVM, создаваемый одновременно с созданием потока. Новый фрейм создается всякий раз, когда вызывается метод, и он удаляется, когда процесс вызова метода завершается.
5) Регистры ПК
Регистр ПК хранит адрес Java инструкция виртуальной машины, которая выполняется в данный момент. В Java, каждый поток имеет отдельный регистр ПК.
6) Стеки собственных методов
Стеки собственных методов содержат инструкции собственного кода в зависимости от собственной библиотеки. Оно написано на другом языке вместо Java.
7) Механизм выполнения
Это тип программного обеспечения, используемого для тестирования оборудования, программного обеспечения или целых систем. Механизм выполнения тестов никогда не несет никакой информации о тестируемом продукте.
8) Интерфейс собственного метода
Интерфейс собственного метода — это среда программирования. Это позволяет Java код, который выполняется в JVM для вызова библиотеками и собственными приложениями.
9) Собственные библиотеки методов
Нативные библиотеки — это коллекция нативных библиотек (C, C++), которые необходимы механизму выполнения.
Процесс компиляции и выполнения программного кода
Чтобы написать и выполнить программу, вам необходимо следующее:
1) Редактор – Для ввода вашей программы можно использовать блокнот.
2) составитель – Чтобы преобразовать вашу программу на высоком языке в собственный машинный код
3) Линкер – Чтобы объединить ссылки на различные программные файлы в вашей основной программе.
4) Погрузчик – Чтобы загрузить файлы с вашего дополнительного устройства хранения, такого как жесткий диск, флэш-накопитель, компакт-диск, в оперативную память для выполнения. Загрузка выполняется автоматически при выполнении кода.
5) Исполнение – Фактическое выполнение кода, который обрабатывается вашей ОС и процессором.
Используя эту информацию, посмотрите следующее видео и изучите внутреннюю работу и архитектуру JVM (Java виртуальная машина).
Нажмите здесь если видео недоступно
Процесс компиляции и выполнения кода C
Чтобы понять Java процесс компиляции в Java. Давайте сначала кратко рассмотрим процесс компиляции и компоновки в C.
Предположим, в main вы вызвали две функции f1 и f2. Основная функция хранится в файле a1.c.
Функция f1 хранится в файле a2.c.
Функция f2 хранится в файле a3.c.
Все эти файлы, т. е. a1.c, a2.c и a3.c, передаются компилятору. Выходом которого являются соответствующие объектные файлы, представляющие собой машинный код.
Следующим шагом является интеграция всех этих объектных файлов в один .exe-файл с помощью компоновщика. Компоновщик объединит все эти файлы и создаст файл .exe.
Во время работы программы программа-загрузчик загрузит файл.exe в Оперативная память для исполнения.
Java Компиляция и выполнение кода в Java VM
Теперь в этом руководстве по JVM давайте рассмотрим процесс для JAVA. В вашем основном файле есть два метода f1 и f2.
- Основной метод хранится в файле a1.java.
- f1 хранится в файле как a2.java.
- f2 хранится в файле как a3.java.
Компилятор скомпилирует три файла и создаст 3 соответствующих файла .class, которые состоят из BYTE-кода. В отличие от C, связывание не выполняется..
The Java ВМ или Java Виртуальная машина находится в ОЗУ. Во время выполнения, используя загрузчик классов, файлы классов переносятся в ОЗУ. Код BYTE проверяется на наличие нарушений безопасности.
Далее, механизм выполнения преобразует байт-код в машинный код. Это компиляция «точно в срок». Это одна из главных причин, почему Java сравнительно медленный.
ПРИМЕЧАНИЕ: JIT- или JIT-компилятор является частью Java Виртуальная машина (JVM). Он интерпретирует часть байт-кода, которая одновременно имеет аналогичную функциональность.
Зачем был создан сайт Java как интерпретируемый, так и скомпилированный язык?
Языки программирования классифицируются как
- Язык более высокого уровня Пр. C++, Java
- Языки среднего уровня Пр. С
- Низкоуровневый язык Ex Assembly
- наконец, самый низкий уровень — машинный язык.
A компилятор это программа, которая преобразует программу с одного уровня языка на другой. Пример преобразования C++ программа в машинный код. Компилятор Java преобразует высокоуровневый код Java в байт-код (который также является типом машинного кода).
An переводчик это программа, которая преобразует программу одного уровня в другой язык программирования на тот же уровень. Пример преобразования Java программа в C++
In JavaГенератор кода Just In Time преобразует байт-код в машинный код, который находится на тех же уровнях программирования.
Следовательно, Java является как компилируемым, так и интерпретируемым языком.
Зачем был создан сайт Java медленный?
Две основные причины медлительности Java
- Динамическое связывание: В отличие от C, компоновка выполняется во время выполнения, каждый раз, когда программа запускается в Java.
- Интерпретатор времени выполнения: Преобразование байтового кода в собственный машинный код выполняется во время выполнения в Java что еще больше замедляет скорость
Однако последняя версия Java в значительной степени устранил узкие места производительности.
Резюме:
- Полная форма JVM: Java Виртуальная машина. JVM в Java это двигатель, который приводит в движение Java Код. Он преобразует Java байт-код на машинный язык.
- Архитектура JVM в Java содержит загрузчик классов, область памяти, механизм выполнения и т. д.
- В JVM Java код компилируется в байт-код. Этот байт-код интерпретируется на разных машинах.
- JIT означает JIT-компилятор. JIT является частью Java Виртуальная машина (JVM). Используется для ускорения времени выполнения.
- По сравнению с другими компиляторами, JVM в Java может быть медленным в исполнении.