一个类继承另外一个类,并且两个类中都有静态代码块,实例代码块,无参构造,请问在创建子类时,这三种的执行顺序是怎样的?

答:由于创建子类时需要先创建父类,而创建父类需要加载父类到内存之中,接着需要加载子类到内存之中,所以父类和子类的静态代码块先执行并且执行一次。接着需要创建父类对象,编译优化后会将实力代码块优化到父类的无参构造,所以会接着执行静态代码块和父类的无参构造中的内容,接着创建子类,同理先执行子类的实例代码块,接着执行子类的无参构造,并且父类子类的实例代码块和无参构造执行的次数与创建子类对象的个数一致!