Meine Frage bezieht sich auf das Initialisierung von konstanten Klasssenvaribalen, da diese ja in anderen Klassen "einkompiliert" werden.
Hab ich zum Beispiel:
Würde ich die beiden Klassen kompilieren, ersetzt der Compiler ja A.KONST durch 5, sodass wenn ich in A den Wert der Konstanten ändere ich B auch neu kompilieren muss.
Daher meine Frage:
Was wird zuerst ausgeführt? Ein statischer Block oder der Konstruktor der Klasse?
Wenn es der Konstuktor ist, könnte ich die Initialisierung der Klassenvariablen im statischen Block ausführen und der Verweis in Klasse B, bliebe bestehen.
Hab ich zum Beispiel:
Code:
class A{
public static final KONST = 5;
}
class B{
System.out.println(A.KONST);
}
Würde ich die beiden Klassen kompilieren, ersetzt der Compiler ja A.KONST durch 5, sodass wenn ich in A den Wert der Konstanten ändere ich B auch neu kompilieren muss.
Daher meine Frage:
Was wird zuerst ausgeführt? Ein statischer Block oder der Konstruktor der Klasse?
Wenn es der Konstuktor ist, könnte ich die Initialisierung der Klassenvariablen im statischen Block ausführen und der Verweis in Klasse B, bliebe bestehen.