如下代码的执行顺序分析
package com.crawl.crawlbigdata;
import java.util.HashMap;
/**
* @Description TODO
* @ClassName HashMaptest
* @Author 康世行
* @Date 10:36 2022/9/16
* @Version 1.0
**/
public class HashMaptest {
public static void main(String[] args) {
A ab=new B();
ab=new B();
}
}
class A {
static {
System.out.println("1");
}
public A() {
System.out.println("2");
}
}
class B extends A{
static {
System.out.println("a");
}
public B() {
System.out.println("b");
}
}
流程图分析
执行结果
因为静态代码块只初始化一次,所以第二次只输出 父类构造方法和子类构造方法里的值