java类加载顺序(spring容器下)

执行顺序:父类静态块–>子类静态块–>父类非静态块–>父类构造方法–>子类非静态块–>子类构造方法–>自动装载的方法

子类和父类均加上@Service注解,将其交给spring容器管理。

父类:

@Service
public class Father {

  public static void regist(){
    System.out.println("Father regist");
  }

  static {
    System.out.println("Father中的静态块:1");
  }

  static {
    System.out.println("Father中的静态块:2");
  }
  public void m1(){
    System.out.println("Father中的非静方法 m1");
  }
  public Father() {
    System.out.println("Father构造方法");
  }

}

子类:

@Service
public class Child extends Father {

  @Autowired
  public void t1(){
    Father.regist();
    System.out.println("Child regist");
  }

  static {
    System.out.println("Son中的静态块:1");
  }

  static {
    System.out.println("Son中的静态块:2");
  }

  {
    System.out.println("Son中的非静态块");
  }

  public Child() {
    System.out.println("Son构造方法");
  }
}

运行项目时,打印如下:
java类加载顺序(spring容器下)

上一篇:买礼物


下一篇:2020年腾讯实习生算法笔试题目(感触良多)