无继承的情况下的执行顺序

静态代码块:只在程序启动后执行一次,优先级最高
构造代码块:任何一个构造器被调用的时候,都会先执行构造代码块,优先级低于静态代码块
构造器:优先级低于构造代码块
总结一下优先级:静态代码块 > 构造代码块 > 构造器

有继承的情况下的执行顺序:

父类静态代码块:只在程序启动后执行一次,优先级最高
子类静态代码块:只在程序启动后执行一次,优先级低于父类静态代码块
父类构造代码块:父类任何一个构造器被调用的时候,都会执行一次,优先级低于子类静态代码块
父类构造器:优先级低于父类构造代码块
子类构造代码块:子类任何一个构造器被调用的时候,都会执行一次,优先级低于父类构造器
子类构造器:优先级低于子类构造代码块

总结一下优先级:父类静态代码块 > 子类静态代码块 > 父类构造代码块 > 父类构造器 > 子类构造代码块 > 子类构造器