被你忽略的Java基础
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();
父静态变量—父静态代码块–子静态变量—子静态代码块—父变量—父代码块—父构造函数----子变量----子代码块----子构造函数