Several things occur in a particular order to ensure an object is constructed properly:
1. Memory is allocated from heap to hold all instance variables and implementation specific data of an object and its super classes. An Implementation specific data includes pointers to class and method data.
2. An instance variables of the objects are initialized to their default values.
3. A constructor for the most derived class is invoked. The first thing a constructor does is call constructors for its super classes. This process continues until a constructor for java.lang. Object is known as java.lang. Object is the base class for all objects in java.
4. Before the body of the constructor is executed, all instance variable initializes and initialization blocks are executed. Then the body of a constructor is executed. Thus, constructor for the base class completes first and constructor for the most derived class completes last.