Java执行顺序
加载
验证
准备:为静态变量分配内存并设置初始值(数据类型的默认值而不是实际赋的值),
解析
初始化:给静态变量赋定义的值,执行静态代码块
如果类已经被加载了,则静态代码块和静态变量就不会重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法
1.new 创建实例: A a = new A();
2.调用静态变量: int a = A.a; / A.a = 100; ----初始化了静态变量,静态代码块
3.调用静态方法: A.get(); -----初始化了静态变量,静态代码块
1.A a=new A() ;
静态变量--->静态代码块--->变量--->代码块---->构造函数
B b = new B();
父静态变量---父静态代码块--子静态变量---子静态代码块---父变量---父代码块---父构造函数----子变量----子代码块----子构造函数