我对以下代码的输出感到困惑。我知道第一个静态块在类加载后执行,但是为什么我的类Test6没有加载。有人可以澄清一下。

package com.vikash.General;

public class Test5 {

    public static void main(String[] args) {
        System.out.println(Test6.FOO);
    }
    static {
        System.out.println("Initializing B");
    }
}
class Test6{

    public static final String FOO = "foo";
    static {
        System.out.println("Initializing A");
    }
}

最佳答案

Test6.FOO指的是Test6,但是该字段是从编译时常量初始化的public static final String,因此它是will be inlined by the compiler,根本不需要加载Test6

关于java - 为什么我的课没有上课,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37319566/

10-09 15:47