Java中代码块执行顺序

Posted 纸短情长,伏惟珍重.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中代码块执行顺序相关的知识,希望对你有一定的参考价值。

代码块:在Java中,使用{}括起来的代码被称为代码块。
根据其位置和声明的不同,可以分为


局部代码块:局部位置,用于限定变量的生命周期。
构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造代码块。
作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化。
静态代码块:在类中的成员位置,用{}括起来的代码,只不过它用static修饰了。
作用:一般是对类进行初始化。


静态代码块,构造代码块,构造方法的执行顺序?

 

首先执行静态代码块

接着执行构造代码块

最后指向构造方法

 

class Fu{
    static {
        System.out.println("Fu static code");
    }
    {
        System.out.println("Fu code");
    }
    public Fu(){
        System.out.println("Fu GouZao");
    }
}

class Zi extends Fu{
    static {
        System.out.println("Zi static code");
    }
    {
        System.out.println("Zi code");
    }
    public Zi(){
        System.out.println("Zi GouZao");
    }
}

public class Text{
    public static void main(String[] args) {
        Zi zi = new Zi();
    }
}

输出:

Fu static code
Zi static code
Fu code
Fu GouZao
Zi code
Zi GouZao

  

以上是关于Java中代码块执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

Java中的Static静态代码块以及各代码块之间的执行顺序

Java中的Static静态代码块以及各代码块之间的执行顺序

Java中的Static静态代码块以及各代码块之间的执行顺序

java中为啥说静态方法先执行?

问题008:java 中代码块的风格有几种?单行注释可否嵌套?多行注释可否嵌套?

Java中的代码块