我对以下代码的输出感到困惑。我知道第一个静态块在类加载后执行,但是为什么我的类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/