代码执行顺序(Java)

Java中代码的执行顺序

父类静态代码块–>子类静态代码块–>父类普通代码块–>父类构造方法–>子类代码块–>子类构造方法

public class BigFish{//定义子类
    static {
        System.out.println("我是父类静态代码块");
    }
    //父类普通代码块
    {
        System.out.println("我是父类普通代码块");
    }
    //父类构造方法
    public BigFish(){
        System.out.println("我是父类构造方法");
    }

}
class SmallFish extends BigFish{//定义父类
    static {
        System.out.println("我是子类静态代码块");
    }
    //子类普通代码块
    {
        System.out.println("我是子类普通代码块");
    }
    //子类构造方法
    public SmallFish(){
        System.out.println("我是子类构造方法");
    }

    public static void main(String[] args) {
        BigFish bigFish=new SmallFish();
    }

}

执行这个类的 main方法,会导致类进行加载,而类加载的属性如下:
1、虚拟机在首次加载Java类时,会对静态初始化块、静态成员变量、静态方法进行一次初始化。我们不要去纠结这里的顺序,一般来说我们只需要知道,静态方法一般在最后。
2、只有在调用new方法时才会创建类的实例
3、类实例创建过程:按照父子继承关系进行初始化,首先执行父类的初始化块部分,然后是父类的构造方法;再执行本类继承的子类的初始化块,最后是子类的构造方法
4、类实例销毁时候,首先销毁子类部分,再销毁父类部分


版权声明:本文为qq_44333980原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。