静态成员(静态变量、静态初始化块) > 变量、初始化块 > 构造器
只要一个类被使用:调用了类中的某个静态方法或者是创建对象,这两种情况表明该类被使用了。
如果是有类的继承关系,则优先执行父类中的成员,属性及构造器,及初始化顺序为:
父类的静态成员
子类的静态成员
父类的变量、初始化块
父类构造器
子类的变量、初始化块
子类构造器
静态成员的特性为,只在数据存储区占一份内存,被类的所有对象所共有,在类被使用时执行。
非静态代码块主要用于对对象的初始化操作,每次创建对象都会执行一次。在构造器之前被调用,因此当有多个重载的构造器,并且有许多共同的初始化操作可放在非静态代码块中执行。