Bloque estático en Java no ejecutado
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);
}
}
Sé que unstatic
bloque ejecutado cuando la clase cargada. Pero en este caso la variable de instancia dentro de la clase.Mno
esfinal
, por eso elstatic
El bloque no se está ejecutando.
¿Por qué es así? Y si quisiera quitar elfinal
, funcionaria bien?
¿Qué memoria se asignará primero, lastatic final
variable o lastatic
¿bloquear?
Si debido a lafinal
modificador de acceso que la clase no se carga, entonces, ¿cómo puede la memoria obtener la variable?