Lifecycle программы
Жизненный цикл Java-программы целиком:
- Компиляция.
javacпревращает.javaв.class(байт-код). - Запуск JVM. Команда
javaстартует новую JVM — выделяется память под стек, кучу, Metaspace. - Загрузка классов. ClassLoader подгружает нужные
.class-файлы по мере обращения к ним. - Исполнение. Сначала интерпретация, горячий код позже компилируется JIT-ом.
- Сборка мусора. Параллельно с исполнением GC периодически освобождает память от мёртвых объектов.
- Завершение. Метод
mainвозвращается (или вызванSystem.exit) — JVM завершает работу, освобождает память ОС.
Это всё, что происходит «вокруг» твоего кода, пока он выполняется — JVM запускается одна на процесс и живёт ровно столько, сколько работает программа.
🎤 Закрыл тему, если можешь объяснить:
• основные шаги от запуска `java` до завершения программы.