类的初始化和对象的初始化时不同的。 上面的图是类的初始化,接口的初始化没有静态代码块,而且在初始化时与类初始化有些差异。 类在初始化的时候要求其父类全部已经初始化过了,但是接口只有真正使用父接口的时候才会初始化。 参考《深入理解Java虚拟机》