前言
那一年,呼延十又回想起被加载顺序支配的恐惧,笔试题上,好几个类,几个方法,几个输出语句,让你按照顺序写出输出.我真的是有一句….
但是呢,我们还是有了解一下的必要的,在编码过程中有许多的应用....正文
经常用来比较顺序的,无非就是静态代码块,普通代码块,静态方法和普通方法.
这里直接说一下结论:
先静态后普通最后构造方法,先父类后子类....由于B类有父类,因此先加载A类.
加载A类的静态代码块,输出A-----static.
加载B类的静态变量,调用了方法,输出B----- static func....加载A类的构造方法,输出A----- constructor.
加载B类的普通变量,调用了方法,输出B----- default.
加载B类的构造方法,输出了B----- constructor....静态变量,静态代码块的加载顺序只和代码编写的顺序有关.
普通变量及构造方法,顺序一定是先普通变量,再构造方法的.
说好的应用呢
其实我目前对这个知识点应用最多的就是静态代码块.