关于类的静态和最终变量效果

时间:2013-02-19 10:02:30

标签: java scope

如果你执行这个程序你将只获得i值而不是SIB,我的问题是当类加载到内存SIB中时应该执行并且应该给出ooutput,但是在这里我只得到{{1值?然后在类测试中保留一个方法,然后从另一个类调用该方法,然后您将获得SIB的输出,i方法(保持方法也作为静态最终)

i

1 个答案:

答案 0 :(得分:7)

static final变量是编译时常量,其值被复制到引用它的另一个类中。因此,您的类Test将不会加载,也不会执行初始化程序。当变量仅为static时,必须加载该类以读取当前值,并且将执行您的SIB块。仅当您使用Test 实例化 new Test()时,才会执行IIB块。