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
액세스 수정 클래스는로드되지 않습니다, 그럼 어떻게 변수 GET 메모리 할 수 있습니까?