Java笔试题学习之30(静态块,静态属性,final关键字)

public class Test30 {
    public static void main(String[] args) {
        System.out.println(BX.c);
    }

}
class AX{
    static {
        System.out.println("A");
    }
}
class BX extends AX{
    static {
        System.out.println("B");
    }
    public final static String c="C";
}

输出:C

分析:
public final static String c=“C”; final和static关键字,使得变量c在编译阶段就已经被赋值了,并存在常量池中,所以在类的加载阶段就不会触发静态块的执行

如果去掉final
则输出:
A
B
C

分析,静态块的执行顺序,先父类,再子类

你可能感兴趣的:(Java笔试题学习)