首页 > 试题广场 >

JAVA的类加载期负责整个生命周期内的class的初始化和加

[单选题]
JAVA的类加载期负责整个生命周期内的class的初始化和加载工作,就虚拟机的规范来说,以下代码会输出什么结果?
public class Test {

    public static void main(String[] args) {
        System.out.println(Test2.a);
    }

}
class Test2{
    public static final String a=new String("JD");

    static {
        System.out.print("OK");
    }

}
  • 只有JD
  • 只有OK
  • 输出 JDOK
  • 输出 OKJD
详细请见博客讲解 => https://www.cnblogs.com/hglibin/p/10298650.html
编辑于 2019-01-25 09:42:42 回复(0)
public class Test {

    public static void main(String[] args) {
        System.out.println(Test2.a);
    }

}
class Test2{
    public static final String a=new String("JD");
//估计大家都觉得这里已经加载过静态属性了,属性虽然有值但是并没有输出结果,等到最后Test2.a才调用输出
    static {
        System.out.print("OK");
    }
//所以执行顺序是:
    1.Test2.a---->加载Test2类---->打印OK--->调用Test2的a属性---->打印JD
    2.所以结果是:OKJD
//希望大家以后可以细心点,题目中是看打印结果,(同时也提醒我自己,哈哈)

}
发表于 2019-01-20 16:56:51 回复(0)