Карта / JVM под капотом / Lifecycle программы

Lifecycle программы

Жизненный цикл Java-программы целиком:

  1. Компиляция. javac превращает .java в .class (байт-код).
  2. Запуск JVM. Команда java стартует новую JVM — выделяется память под стек, кучу, Metaspace.
  3. Загрузка классов. ClassLoader подгружает нужные .class-файлы по мере обращения к ним.
  4. Исполнение. Сначала интерпретация, горячий код позже компилируется JIT-ом.
  5. Сборка мусора. Параллельно с исполнением GC периодически освобождает память от мёртвых объектов.
  6. Завершение. Метод main возвращается (или вызван System.exit) — JVM завершает работу, освобождает память ОС.

Это всё, что происходит «вокруг» твоего кода, пока он выполняется — JVM запускается одна на процесс и живёт ровно столько, сколько работает программа.

🎤 Закрыл тему, если можешь объяснить:
• основные шаги от запуска `java` до завершения программы.