Java中的静态初始化块,普通初始化块,构造器的执行顺序:
首先:在一个类中执行优先级是:静态初始化块> 普通初始化块 > 构造器
静态初始化块是在类被加载的时候就执行的一块程序,并且一直存在直到程序关闭。也就是说当程序被执行的时候,也就是classloader将该java程序编译后的class文件加载以后,就执行到静态初始化块这段程序;
当程序关闭,我的个人理解也就是java.exe进程被结束的时候,静态初始化块结束(例如在静态初始化块里对一个类的静态变量进行赋值,该变量一直存在到程序关闭)。
当从最高层类到子类中都存在静态初始化块,普通初始化块,构造器时:
首先从最高层到最底层类执行每个类的静态初始化块,然后从最高类到最底层类
依次执行每个类中的普通初始化块和构造器,最后执行下一层类的普通初始化块和构造器。