Статический блок в Java не выполнен

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);
    }
}

Я знаю чтоstatic блок выполняется при загрузке класса. Но в этом случае переменная экземпляра внутри классаMno являетсяfinalиз-за этогоstatic блок не выполняется.

Почему это так? И если бы я удалилfinalэто будет работать нормально?

Какая память будет выделена первой,static final переменная илиstatic блок?

Если из-заfinal модификатор доступа класс не загружается, тогда как переменная может получить память?

Ответы на вопрос(5)

Ваш ответ на вопрос