Время выполнения статического блока/время компиляции?

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

Я сомневаюсь, что это происходит во время выполнения или во время компиляции?

Во время компиляции код преобразуется в машинный язык, и во время выполнения этот код машинного языка выполняется. Итак, изменяется ли порядок выполнения во время компиляции, и все статические операторы объединяются в начале кода, чтобы они выполнялись раньше всего??

Извините, если это выглядит как очень простой вопрос..


person Nishit    schedule 11.06.2014    source источник
comment
@Raedwald, а не дубликат. Этот вопрос касается блоков, а не переменных.   -  person Basilevs    schedule 11.06.2014
comment
@Basilevs нет практической разницы.   -  person Raedwald    schedule 11.06.2014


Ответы (2)


Они загружаются во время выполнения.

Статический означает, что переменная принадлежит классу, а не экземплярам класса. Таким образом, у каждой статической переменной есть только одно значение, а не n значений, если у вас есть n экземпляров класса.

person Keval Trivedi    schedule 11.06.2014

Статический блок инициализации запускается, когда JVM (загрузчик классов) загружает StaticClass (когда на него впервые ссылаются в коде).

Подробнее о статическом блоке в java см.

person rachana    schedule 11.06.2014