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 un static
bloque se ejecuta cuando se carga la clase. Pero en este caso, la variable de instancia dentro de la clase Mno
es final
, debido a que el static
bloque no se está ejecutando.
¿Por qué es así? Y si quito el final
, ¿funcionaría bien?
¿Qué memoria se asignará primero, la static final
variable o el static
bloque?
Si debido al final
modificador de acceso la clase no se carga, ¿cómo puede la variable obtener memoria?