As some sources say, the Java instance initialization blocks are executed whenever instance is created or right before constructor. But imagine this case:
The last statement is incorrect. Main() is executed after Foo(), because a class constructor is executed after its super constructor has finished.
For more details see this part of the spec, which deals with implicit and explicit super constructor calls.