Что нужно знать о виртуальной машине Java?

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

language уже очень давно является гигантом в ИТ-индустрии. В нем есть несколько первоклассных концепций, которые делают его лучше, чем остальной язык программирования. Одной из таких концепций является виртуальная машина Java, в этой статье мы узнаем о различных аспектах виртуальная машина подробно. В этом блоге обсуждаются следующие темы:



Что такое виртуальная машина Java?

Виртуальная машина Java - это независимая от платформы абстрактная машина, которая обеспечивает среду выполнения, в которой выполняется байтовый код Java.



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

как создать оповещение в javascript

jvm - виртуальная машина java - edureka

Зачем нам нужна виртуальная машина Java?

Виртуальная машина Java нужна нам для выполнения задач, которые крайне необходимы для любой разработки, связанной с Java. Ниже приведены несколько задач, которые выполняет виртуальная машина Java.



  • Загружает код
  • Проверка кода
  • Выполнение кода
  • Он обеспечивает среду выполнения для приложений
  • Область памяти
  • Набор регистров
  • Предоставляет кучу сборки мусора
  • Сообщение о фатальных ошибках
  • Обеспечивает класс формат файла

Со всеми этими операциями виртуальная машина Java является неотъемлемой частью разработки Java. Попробуем понять, как это работает, с помощью архитектуры виртуальной машины Java.

Архитектура виртуальной машины Java

Архитектура виртуальной машины Java довольно проста, в ней есть область памяти, загрузчик классов и механизм выполнения среди других компонентов. давайте подробно обсудим каждый из них.

ClassLoader

Это подсистема, которая используется для загрузки файлов классов. Всякий раз, когда мы запускаем программу на java, она сначала загружается с помощью ClassLoader. основная функция включает в себя инициализацию, связывание и загрузку. Ниже приведены встроенные загрузчики классов в Java.



    • Бутстрап ClassLoader - это суперкласс Extension ClassLoader, который загружает файл rt.jar.

    • Расширение ClassLoader - загружает файлы jar, расположенные в каталоге.

    • Система / Приложение ClassLoader - загружает файлы классов из пути к классам.

    • Операция загрузки - Сначала classLoader загружает файлы .class и генерирует соответствующие данные в двоичном формате, которые сохраняются в области метода.

    • Операция связывания - После загрузки он подготавливает, проверяет и делает разрешение. JVM выделяет память для переменных класса и инициализирует память значениями по умолчанию. Это гарантирует правильность файла .class, и когда проверка не удалась, мы получаем ошибку исключения времени выполнения.

    • Инициализация - Всем статическим переменным присваиваются значения, определенные в кодовом блоке на этом этапе.

Память JVM

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

  • Куча - Объекты размещаются во время выполнения в куче.

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

  • Регистры ПК - Он имеет адрес или расположение выполняемой инструкции JVM.

  • Собственные стеки методов - Все собственные методы, используемые в приложениях, присутствуют в стеках собственных методов.

  • Механизм исполнения - Механизм выполнения содержит виртуальный процессор, интерпретатор и JIT компилятор.

  • Собственный метод Интерфейс - Это что обеспечивает.

Теперь, когда мы разобрались с архитектурой JVM, давайте посмотрим на процесс выполнения и компиляцию кода.

Процесс исполнения

Следующие шаги выполняются во время выполнения и компиляции кода Java.

  • Основной метод хранится в одном файле, а другие методы хранятся в разных файлах.
  • После компиляции он предоставит соответствующие файлы .class, которые будут иметь байтовый код без каких-либо ссылок, в отличие от C.
  • Во время выполнения файлы классов проверяются на наличие нарушений с помощью загрузчика классов.
  • После этого байт-код преобразуется в соответствующий машинный код. Это также причина того, почему Java сравнительно медленнее.

Теперь, когда мы знаем, как работает выполнение, давайте посмотрим на разницу между JDK, JRE и JVM.

Разница между JDK, JRE и JVM

Ниже приведены несколько важных различий между JDK , JVM и JRE.

  1. JDK означает комплект для разработки Java, а JRE - среду выполнения Java.
  2. JDK предназначен для разработки, а JRE - для среды выполнения.
  3. JVM является неотъемлемой частью JDK и JRE для запуска любой программы Java.
  4. JVM является неотъемлемой частью программирования на Java и обеспечивает независимость от платформы.

На этом мы подошли к концу статьи, где мы подробно узнали о виртуальной машине Java. Я надеюсь, что вы понимаете все, что было поделено с вами в этом руководстве.

Если вы нашли эту статью о «Виртуальной машине Java» релевантной, ознакомьтесь с Edureka , надежная компания онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.

Мы здесь, чтобы помочь вам на каждом этапе вашего пути и предложить учебную программу, предназначенную для студентов и профессионалов, которые хотят стать Java-разработчиком. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Если у вас возникнут какие-либо вопросы, не стесняйтесь задавать все свои вопросы в разделе комментариев «Виртуальная машина Java», и наша команда будет рада ответить.