被你忽略的Java基础

Java执行顺序

加载

验证

准备:为静态变量分配内存并设置初始值(数据类型的默认值而不是实际赋的值),

解析

初始化:给静态

变量赋定义的值,执行静态代码块

如果类已经被加载了,则静态代码块和静态变量就不会重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法

1.new 创建实例: A a = new A();

2.调用静态变量: int a = A.a; / A.a = 100; ----初始化了静态变量,静态代码块

3.调用静态方法: A.get(); -----初始化了静态变量,静态代码块

1.A a=new A() ;

静态变量—>静态代码块—>变量—>代码块---->构造函数

被你忽略的Java基础
被你忽略的Java基础

B b = new B();

父静态变量—父静态代码块–子静态变量—子静态代码块—父变量—父代码块—父构造函数----子变量----子代码块----子构造函数
被你忽略的Java基础被你忽略的Java基础