Java静态代码块,普通代码块和构造函数的执行顺序

1.静态代码块和普通匿名代码快都比构造函数先运行

2.静态代码块比非静态代码块先执行。

3.静态变量、静态方法都属于类,类加载时便有了,而此时还没有对象

示例:

public class Demo {

    public static void main(String[] args) {
        A a = new A();
        System.out.println(A.m);
    }
}

class A {
    public A() {
        System.out.println("A类的无参构造方法");
    }

    {
        System.out.println("非静态代码块");
    }



    static {
        System.out.println("静态代码块");
        m = 2019;
    }

    static int m = 2020;

}

结果

静态代码块
非静态代码块
A类的无参构造方法
2020

很好的参考:

https://www.cnblogs.com/bigdata-stone/p/10458380.html

猜你喜欢

转载自www.cnblogs.com/majestyking/p/12423670.html