Li Check out the JLS section 12.5 for the complete details on instance creation. Basically the order it happens in is this: -- execute any calls to another constructor (using this()) then do that constructor -- then execute either the explicit or implicit call to the super classes constructor -- then initialize all of the instance variables -- then the rest of the statements in the constructor. hope that helps