Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему в этом коде используется static?

class TestClass{

public static void main(String[] args) {

int i=2/3;

System.out.println(i);

}

static{

int i=12;

System.out.println(i+100);

}

}

Почему используется static без имени метода?. Есть ли какое-то название этому явлению? И почему сначала выводится 112, а потом 0?

Программирование на java
владислав дрозд
  ·   · 114
Studio 22 - это открытая площадка для реализации...  · 12 нояб 2020  · std-22.github.io
Отвечает
Ilya Tolokonov

Здравствуйте, данное явление называется статическим блоком. Код статического блока выполняется только один раз: при первом создании объекта класса или при первом обращении к статическим членам этого класса. Получается, когда Вы обращаетесь к процедуре main, автоматически выполняется статический блок, так как все переменные инициализируются перед вызовом любого метода. Благодаря этому порядку инициализации статический блок выполняется первым.