From page 226 of the
SCJP 5.0:
class Init {
Init(int x) { System.out.println("1-arg const"); }
Init() { System.out.println("no-arg const"); }
static { System.out.println("1st static init"); }
{ System.out.println("1st instance init"); }
{ System.out.println("2nd instance init"); }
static { System.out.println("2nd static init"); }
public static void main(
String [] args) {
new Init();
new Init(7);
}
}
If init blocks run AFTER the constructor's call to super();. Why does the output show the no-arg and 1-arg const being called last?
1st static init
2nd static init
1st instance init
2nd instance init
no-arg const
1st instance init
2nd instance init
1-arg const