Welche statische Variable oder welcher statische Block wird zuerst geladen? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Java: In welcher Reihenfolge werden statische Endfelder initialisiert? 5 Antworten

Einer meiner Freunde hat mich gefragt, welche statische Variable oder welcher statische Block zuerst geladen werden soll.

Meine Antwort verweist auf eine statische Variable.

Also gab er mir zwei Gleichungen und sagte, zwischen ihnen zu unterscheiden
Erste Gleichung

public class Some {
    public static void main(String args[])
    {
        System.out.println(Some.x);
    }
    static {
        System.out.println(Some.x);
    }
    static int x=90;
}

O / P: 0 90

Zweite Gleichung

public class Some {
    public static void main(String args[])
    {
        System.out.println(Some.x);
    }
    static int x=90;
    static {
        System.out.println(Some.x);
    }
}

O / P: 90 90

Ich habe versucht, den Bytecode zu dekompilieren und festgestellt, dass er für beide oben genannten Gleichungen gleich ist. Bitte helfen Sie mir, zwischen ihnen zu unterscheiden. Ich bin verwirrt, wann die statische Variable initialisiert wird.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage