Wie JVM übergeordnete Klassen in Java lädt

Code:

class A {
    static {
        System.out.println("loading A static 1");
    }
    static {
        System.out.println("loading A static 2 B.c= "+B.c);        
    }
    static {
        System.out.println("loading static 3");
    }
    static int a=10; 
    A(){        
    }
}

class B extends A{
    static {
       System.out.println("loading B A.a= "+A.a);
    }
    static int c = 50;
}
public class Test {
    public static void main(String[] args) {
        new B();
    }
}

Ausgabe:

loading A static 1
loading A static 2 B.c= 0
loading static 3
loading B A.a= 10

Können wir aus diesem Grund sagen, dass die übergeordnete Klasse nach der untergeordneten Klasse geladen wird, die untergeordnete Klasse jedoch nach der übergeordneten Klasse initialisiert wird? Wenn ja, wie lädt JVM Klassenhierarchien?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage