java基础之代码块

分为静态代码块和构造代码块。

1.静态代码块:

 static {
        System.out.println("静态");
    }

每个类加载的时候执行,且执行一次。

 

2.构造代码块

{
        System.out.println("构造代码块");
    }

就是每个类new的时候执行,且执行一次。也就是说,调用这个类的构造方法的时候执行。

可能你觉得,这有什么用,跟写在构造方法里不是一回事儿吗?

 

其实不然,如果有多个构造方法呢?这个代码块编译后,会在每个构造方法里存在,且优先于构造函数里面的方法执行。

 

 

3.父类子类都有静态代码块和构造代码块的执行顺序

父类静态代码块-子类静态代码块-父类构造代码块-父类构造函数-子类构造代码块-子类构造函数。

为什么父类构造函数优先于子类构造代码块呢?

因为编译成class文件后,构造代码块是放在构造函数当中的。

posted @ 2020-01-17 10:07  不加班不熬夜的男子  阅读(149)  评论(0编辑  收藏  举报