类里面有很多成员,有成员变量:静态非静态之分。类里面还有静态代码块和非静态代码块(构造代码块),还有方法,静态方法和非静态方法,还有构造函数。
类加载和和实例化的过程,就是把类加载到jvm中,
静态代码块在类加载的时候就被调用了,静态成员在方法区
在执行过程中有个顺序,执行顺序先对所有成员变量赋默认值然(成员变量赋默认值+静态代码块)后从上倒下,先进行初始化然后进行赋值,赋值操作和动态代码块同级,静态方法在运行静态调用期间运行,
具体流程:
1、首先是把所有静态成员变量的字段赋初值
2、然后进行静态代码块+赋值操作。
3、对象的创建(加载完静态后才来动态的,对象创建就是动态的开始。)
3.1、分配内存
3.2、成员变量赋默认值
3.3 、成员变量初始化=(构造代码块+赋值语句 从上到下顺序执行,两者同等级)
3.4 、构造函数
更深层次的涉及到JVM的推荐看:http://blog.youkuaiyun.com/perfe_ct/article/details/6563051