1. static代码块也叫静态代码块,作用就是对类进行初始化,而且随着类的加载而执行,并且只会执行一次,如果是普通代码块,没创建一个对象,就执行。
2. 类什么时候被加载?
- 创建对象实例时(new)
- 创建子类对象实例,父类也会被加载
- 使用类的静态成员时(静态属性,静态方法)
3 普通代码块在创建对象实例时,会被隐式调用。被创建一次,就会调用一次。
4 代码块继承时的顺序(重点)
- 父类的静态代码块和静态属性初始化(优先级一样,按定义顺序执行)
- 子类的静态代码块和静态属性初始化(优先级一样,按定义顺序执行)
- 父类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)
- 父类的构造方法
- 子类的普通代码块和普通属性初始化(优先级一样,按定义顺序执行)
- 子类的构造方法
5,静态代码块只能直接调用静态成员,普通代码块可以调用任意成员。