digital-garden/dev/java/Execution Engine.md
Struchkov Mark 10a5cd0b97
All checks were successful
continuous-integration/drone/push Build is passing
Обновление
2024-11-24 13:15:36 +03:00

30 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date: 2024-11-24
---
Execution Engine — это основная часть [[Java Virtual Machine]] (JVM), которая выполняет [[Java байт-код|байт-код]] Java. Он играет важную роль в преобразовании скомпилированного байт-кода (`.class` файлы) в машинный код, который может быть выполнен на конкретной платформе.
Этот процесс делает Java переносимой, позволяя одной и той же программе выполняться на различных устройствах и операционных системах. Это достигается тем, что байт-код, сгенерированный компилятором Java, является платформенно-независимым, а Execution Engine адаптирует его для конкретной машины.
**Основные компоненты Execution Engine**
- [[ClassLoader|Class Loader]] (Загрузчик классов). Class Loader отвечает за загрузку классов и интерфейсов в JVM по мере их необходимости. Например, это полезно при работе с фреймворками, такими как Spring, где классы могут загружаться динамически в зависимости от конфигурации или окружения. Это позволяет программам динамически подключать классы, снижая начальное время загрузки и делая систему более гибкой.
- **Interpreter (Интерпретатор)** Интерпретатор отвечает за выполнение байт-кода, читая его инструкции и выполняя их одну за другой. Хотя интерпретация обеспечивает гибкость, она может быть медленнее по сравнению с компилированным исполнением, так как требует постоянного преобразования байт-кода в машинный код во время выполнения.
- **Just-In-Time Compiler (JIT-компилятор)** Для повышения производительности JVM использует JIT-компилятор. JIT-компиляция преобразует часто выполняемые части байт-кода в машинный код, который может выполняться напрямую процессором. Это значительно ускоряет выполнение программы по сравнению с постоянной интерпретацией.
- [[gc/Garbage Collector|Garbage Collector]] (Сборщик мусора). Сборщик мусора управляет памятью JVM, автоматически освобождая её от объектов, которые больше не используются. Это предотвращает утечки памяти и снижает риск ошибок, связанных с ручным управлением памятью.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]]
**Родитель**:: [[Java Virtual Machine|JVM]]
**Источник**::
**Создана**:: [[2024-11-24]]
**Автор**::
### Дополнительные материалы
- [[Процесс выполнения Java программы|Процесс выполнения Java программы]]
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->