Java中为什么父类的静态代码块一定是在子类的静态代码块之前运行的?

子类在构造器加载时会通过super关键字一层层的调用父类的构造器,导致父类构造器一定在子类的构造器之前加载。但是子类的静态代码块在构造器之前加载,所以并没有使用构造器内的super,那为什么还是父类的静态代码块比子类的静态代码块先加载,而不是加载完子类的静态代码块后加载构造器通过super关键字向上加载直接父类的静态代码块,再通过直接父类的构造器加载间接父类的静态代码块,以此类推。是因为类的加载是从父类开始的吗?

对的,是因为类的加载是从父类开始的

这是固定的执行顺序,父类静态->子类静态->父类方法->子类方法,大概是这样