一:前言须知
- 普通代码块,在创建对象实例的时候,会被调用,每创建一次,就调用一次
- 静态代码块,在类加载的时候执行,并且只会执行一次
- 类加载的时机:
- 创建对象实例的时候(new)
- 创建子类实例的时候,父类也会被加载
- 使用类的静态成员时(静态属性,静态方法)
二:顺序
先执行静态属性 == 静态代码块(这两个按在代码中的顺序)
再执行普通代码 == 普通属性
再执行构造方法
public class text03 {public static void main(String[] args) {B b = new B();}
}
class B {static B b = new B();//静态代码块在类加载的时候执行static {System.out.println("代码块被执行了");num = 10;}//普通代码块在对象创建实例的时候 会被隐式的调用{System.out.println("实例代码块");}B () {System.out.println("构造器");System.out.println("a"+a+" "+"num"+num);}int a = 10;static int num = 100;public static void me () {System.out.println("静态方法被执行了");}}