Когда я запускаю следующий код:
public class Test {
Test(){
System.out.println("1");
}
{
System.out.println("2");
}
static {
System.out.println("3");
}
public static void main(String args[]) {
new Test();
}
}
Я ожидаю получить результат в следующем порядке:
1
2
3
но я получил обратный порядок:
3
2
1
Может кто-нибудь объяснить, почему он выводится в обратном порядке?
================
Кроме того, когда я создаю более одного экземпляра Test
:
new Test();
new Test();
new Test();
new Test();
статический блок выполняется только в первый раз.