JAVA类中的初始化顺序如下:(注意这是一个类似于深度优先的递归顺序)
当创建一个类的对象的引用时,
1、调用一个类的main方法,或者访问任何静态成员时,首先会逐层往上装入其基类(此时初始化工作还没有开始)
2、从最上层的基类开始初始化static对象和static成员变量
3、再初始化非static关键字定义的对象和成员变量(基类优先,并且只在有new操作的时候才进行)
4、最后再调用构造器(构造函数)进行其他的初始化操作(基类优先,并且只在有new操作的时候才进行)
有时候,对同一成员会出现两次初始化,那么后一次会把前一次的初始化处理覆盖掉。