class Test{
public static void main(String arg[]){
System.out.println("**MAIN METHOD");
System.out.println(Mno.VAL);//SOP(9090);
System.out.println(Mno.VAL+100);//SOP(9190);
}
}
class Mno{
final static int VAL=9090;
static{
System.out.println("**STATIC BLOCK OF Mno\t:"+VAL);
}
}
Ich weiß, dass ein static
Block ausgeführt, wenn Klasse geladen. Aber in diesem Fall ist die Instanzvariable innerhalb der Klasse Mno
final
, deshalb wird der static
Block nicht ausgeführt.Statischer Block in Java nicht ausgeführt
Warum ist das so? Und wenn ich die final
entfernen würde, würde es gut funktionieren?
Welcher Speicher wird zuerst zugewiesen, die static final
Variable oder der static
Block?
Wenn aufgrund des Zugriffsmodifizierers final
die Klasse nicht geladen wird, wie kann dann die Variable Speicher abrufen?
Was ist die genauen Fehler und Nachricht, die Sie bekommen? – Patashu
@Patashu, es gibt keinen Fehler, es ist ein Zweifel – Sthita