When I run the following code:
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();
}
}
I expect to get the output in this order:
1
2
3
but what I got is in reverse order:
3
2
1
Can anyone explain why it is output in reverse order?
================
Also, when I create more than one instance of Test
:
new Test();
new Test();
new Test();
new Test();
static block is executed only at first time.
question from:
https://stackoverflow.com/questions/8185780/strange-behavior-using-braces-in-java 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…