类的执行步骤:
1、类加载阶段
2、准备阶段:类变量(静态变量)分配内存,放在方法区(静态区),此时只是分配内存,并没有初始化(一切皆为null或0)
3、开始初始化:类变量初始化
一、首先初始化父类的静态成员变量和静态代码块;(静态成员变量和静态代码块都是存在方法区,生命周期跟随类)
二、然后到子类中的静态成员变量和静态代码块;
三、然后初始化父类的普通成员变量和普通代码块;(成员变量是跟随着类的实例存放在堆当中,生命周期跟随对象)
四、最后初始化子类的普通成员变量和代码块;
(总是最先初始化父类,总是最先初始化java.lang.Object类)
https://blog.csdn.net/lgfeng218/article/details/7606735