【发布时间】:2014-06-05 16:36:48
【问题描述】:
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访问修饰符导致类没有被加载,那么变量如何获得内存?
【问题讨论】:
-
您得到的确切错误和消息是什么?
-
@Patashu ,没有错误,这是一个疑问
标签: java static access-modifiers