我对以下代码的输出感到困惑。我知道第一个静态 block 在类加载后执行,但为什么我的类 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 - 为什么我的类(class)没有加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37319566/