It all depends on the order of execution of initialization statements. Your test demonstrates that this order is:
- Static initialization blocks
- Instance initialization blocks
- Constructors
Edit
Thanks for the comments, now I can quote the appropriate part in the JVM specification. Here it is, the detailed initialization procedure.