哪个会加载第一个静态块或静态变量?

Moh*_*lam 0 java

正如我读到的那样,每个人都说首先会执行静态块,但是当我运行一段代码时,我发现静态变量首先加载.现在这让我感到困惑,请给出正确的解释.

public class MyClass 
{
    static int x=show();
    static
    {
        System.out.println("Hello Mayar");
    }
    public static int show()
    {
        System.out.println("Hello Show");
        return 1;
    }
    public static void main(String a[])
    {
        System.out.println("Hello Main");
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

Hello Show
Hello Mayar
Hello Main
Run Code Online (Sandbox Code Playgroud)

dig*_*ise 6

静态块和变量按其在java源文件中的出现顺序进行评估.

根据类8初始化的Java 8规范:

  1. 接下来,按文本顺序执行类的类变量初始值设定项和类的静态初始值设定项,或接口的字段初始值设定项,就好像它们是单个块一样.