关于静态代码块和静态属性哪个先执行

关于静态代码块和静态属性哪个先执行

好吧本人,小白一个第一发表,轻喷。。。
突然看到静态代码块和代码块的执行顺序,好奇心静态代码块、静态属性、和属性的执行顺序。。。

public class A {

    public static int id = 1;

    static {
        System.out.println("static  id=" + id);
        id = 2;
    }

    public static void main(String[] args) {
        System.out.println(id);
    }
}

结果:
static id=1
2

从结果不难看出静态属性先执行的
类是在加载初始化的时候,分配内存时就先初始化静态属性了然后静态代码块,然后是属性、代码块、构造方法

你可能感兴趣的:(java)