【java】静态代码块,非静态代码块,构造函数 的执行顺序问题

时间:2021-09-23 19:29:27

1、静态代码块

  • Java中的静态代码块是在虚拟机加载类的时候,就执行的,而且只执行一次。如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

2、非静态代码块

  • 非静态代码块是在类new一个实例的时候执行,而且是每次new对象实例都会执行。


注意 :非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行,只能在类中定义。


3、代码执行顺序:

  • 父类静态代码块 -> 子类静态代码块
  • -> 父类非静态代码块 -> 父类构造函数
  • -> 子类非静态代码块 -> 子类构造函数

注意整体:静态代码块—>非静态代码块—>构造方法,如果同事有多个同种变量,按照代码顺序执行就行。