以下都是自己不懂搜到的,总结了一下。
类的静态变量的调用会触发类的初始化。
类的静态常量在编译阶段后被存储到调用它的类中了,与它本身所在类没有关系了,所以它调用不会触发类的初始化。
关于类中的执行顺序:
静态的方法是手动调用时才执行,静态变量与类一起加载,最优先;
静态初始化器(只初始化静态成员变量),然后是属性初始化(只初始化非静态成员变量),最后是构造函数。
所以,类的静态属性(按顺序给静态属性初始化赋值)优先于非静态属性,再优先于构造函数。
但也不一定:
一个类中的第一个静态属性需要用到构造函数,而非静态属性需要在构造函数前初始化,所以执行非静态属性的初始化再构造函数完成,接着初始化第二个静态属性。。。。。