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访问修饰符而无法加载该类,那么该变量如何获取内存?