Поиск по сайту:
Не следует обвинять спящего в том, что он на всё закрывает глаза (В. Ломаный).

Архитектура JVM (виртуальная машина Java) | Объяснение

09.02.2022
Чему должны научиться Java-разработчики в 2021 году

JVM — это абстрактная машина, которая используется для выполнения программ Java. В Java исходный код преобразуется в байт-код, который после дальнейшего преобразования в машинный код передается в память виртуальной машиной Java. Короче говоря, JVM предоставляет среду выполнения для выполнения байт-кода Java, что делает его компонентом среды выполнения Java (JRE). В целом, JVM отвечает за загрузку, связывание и инициализацию.

 

JVM-архитектура

Внутренняя архитектура виртуальной машины Java состоит из трех основных частей.

  1. Загрузчик классов
  2. Область памяти
  3. Исполнительный механизм

 

Вот визуальное представление архитектуры JVM.

JVM-архитектура

 

Ниже подробно описаны все части виртуальной машины Java.

 

1. Загрузчик классов

Загрузчик классов в JVM относится к подсистеме, отвечающей за загрузку файлов. Он загружает Java-программу каждый раз, когда мы запускаем Java-программу. Java предоставляет следующие загрузчики классов.

а. Bootstrap ClassLoader

Суперкласс Extension ClassLoader, отвечающий за загрузку файла rt.jar.

б. Extension ClassLoader

Дочерний элемент Bootstrap Classloader и родитель System/Application ClassLoader, расширение classloader загружает JAR-файлы, которые сохраняются в каталоге.

в. Система/приложение ClassLoader

Этот загрузчик классов загружает файлы классов из пути к классам и является дочерним элементом Extension ClassLoader.

 

2. Область памяти

Область памяти JVM состоит из следующих частей.

а. Область метода

Область методов предназначена для сохранения структуры классов, таких как данные метода или данные поля, пул среды выполнения и код для методов.

б. куча

Куча — это область данных времени выполнения, в которой размещаются объекты .

Читать  Основы YAML, которые должен знать каждый инженер DevOps

в. Стеки

Стек отвечает за хранение кадров, локальных переменных и частичных результатов. Он играет важную роль в вызове метода и возврате метода. Каждый раз, когда создается поток, одновременно создается частный стек JVM для этого конкретного потока, и каждый раз при вызове метода создается новый фрейм, и как только вызов завершается, фрейм уничтожается.

д. Регистры ПК

Он отвечает за хранение адресов во время выполнения инструкций JVM.

е. Стеки нативных методов

Он отвечает за хранение всех собственных методов, необходимых в приложении.

 

3. Исполнительный механизм

Исполнительный механизм состоит из следующего.

а. Устный переводчик

Он выполняет инструкции после чтения потока байт-кода.

б. Компилятор Just-in-time (JIT)

JIT повышает производительность за счет одновременной компиляции частей байт-кода с аналогичными функциями, что в дальнейшем сокращает общее время компиляции.

c.Сборщик мусора

Он используется для сбора объектов, на которые нет ссылок, и их удаления для освобождения памяти.

 

Собственный интерфейс метода

Он помогает взаимодействовать с приложениями, написанными на разных языках, таких как C, C++ и т. д. Он также отвечает за помощь коду Java, работающему в JVM, для вызова библиотек и собственных приложений.

 

Библиотеки методов

Он состоит из собственных библиотек (C, C++), необходимых для Execution Engine.

 

Вывод

Виртуальная машина Java (JVM) — это абстрактная машина, созданная для выполнения программ Java. Архитектура JVM состоит из трех основных частей: загрузчика классов, области памяти и механизма выполнения. Область памяти и исполнительный механизм также состоят из некоторых частей, которые имеют разные функциональные возможности. В этом руководстве объясняется архитектура виртуальной машины Java (JVM) с выделением функций ее различных компонентов.

Читать  8 методов, которые помогают нам (по-настоящему) читать чужой код

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Графические процессоры Nvidia и Intel получают более быстрое кодирование для…

Спасибо!

Теперь редакторы в курсе.