创建指的是new和反射
package day10_7; public class Main { public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException { A a = new A(); Class<?> classa = Class.forName("day10_7.A"); A b = (A)classa.newInstance(); } } class A{ static{ System.out.println("static代码块"); } { System.out.println("非静态代码块"); } } static代码块 非静态代码块 非静态代码块new子类对象时:父类+子类+构造方法+静态代码块+费静态代码块执行情况
package day10_7; public class Main { public static void main(String[] args) throws Exception{ A a = new A(); } } class A extends B{ static{ System.out.println("子类static代码块"); } { System.out.println("子类非静态代码块"); } public A(){ System.out.println("子类构造方法"); } } class B { static{ System.out.println("父类static代码块"); } { System.out.println("父类非静态代码块"); } public B(){ System.out.println("父类构造方法"); } } 父类static代码块 子类static代码块 父类非静态代码块 父类构造方法 子类非静态代码块 子类构造方法