现在的位置: 首页 > 综合 > 正文

Java静态常量

2018年05月09日 ⁄ 综合 ⁄ 共 493字 ⁄ 字号 评论关闭
public class StaticFinal {
    public static final int A = 8;

    public static final Object O = new Object();

    static {
        System.out.println("如果执行了,证明类初始化了");
    }
}

class MyTest {
    public static void main(String[] args) {
        System.out.println(StaticFinal.A);
    }
}

执行上面的代码,会只打印出8,证明StaticFinal类没有被初始化(类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段)。

System.out.println(StaticFinal.A);

修改为

System.out.println(StaticFinal.O);

会打印出:

如果执行了,证明类初始化了
java.lang.Object@102799c

证明StaticFinal类被初始化了

如果变量A只是静态的而不是常量,那么在MyTest中打印出A时,也会初始化StaticFinal类。

抱歉!评论已关闭.