is the initialization happens in this order?

The order of variable initiation is the following:
1) Static variable/methods are initialized first.
2) The object.
3) Object variables.

Yes, with the caveat that sometimes static initialization is delayed until it is needed. You can see this effect by playing with static constructors and derived classes.

i know the example. thank you