class StaticDemo{
//静态代码块
static
{
System.out.println("静态初始化块...");
}
static final String a = "哈哈";
}
public class Test{
public static void main(String[] args) {
System.out.println(StaticDemo.a); //这里调用了StaticDemo类的方法,为什么静态代码块不能运行
}
}
请问什么我获取a的值, Static中的静态代码块不会执行?
作者: 张文豪 时间: 2013-9-14 20:18
如果一个静态成员是编译时常量则对它的引用不会引起定义它的类的初始化。
static final String a = "哈哈";a是个静态常量所以对应它的引用不引起StaticDemo类的初始化,所以静态块也不会初始化