По порядку Middle JVM: память, GC, загрузка классов обновлено

Этапы жизни класса в JVM

Вопрос

Расставьте этапы загрузки класса по порядку.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Preparation: выделение памяти под static-поля с нулевыми значениями
  2. 2
    Resolution: замена символьных ссылок на прямые
  3. 3
    Loading: поиск байткода и создание объекта Class
  4. 4
    Initialization: выполнение static-блоков и инициализаторов
  5. 5
    Verification: проверка корректности байткода
Показать ответ и разбор

Коротко

Verification, preparation и resolution вместе называются linking. Resolution может происходить лениво, но в учебной модели идёт перед инициализацией.

Правильный порядок

  1. 1
    Loading: поиск байткода и создание объекта Class
  2. 2
    Verification: проверка корректности байткода
  3. 3
    Preparation: выделение памяти под static-поля с нулевыми значениями
  4. 4
    Resolution: замена символьных ссылок на прямые
  5. 5
    Initialization: выполнение static-блоков и инициализаторов

Разбор

Verification, preparation и resolution вместе называются linking. Resolution может происходить лениво, но в учебной модели идёт перед инициализацией. Static-блоки выполняются последними, один раз на класс.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме