java - 为什么我的类(class)没有加载

标签 java class classloader

我对以下代码的输出感到困惑。我知道第一个静态 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/

相关文章:

java - LuaJ(Java Lua库): Calling Lua functions in other files from a Lua file

java - 从链表中删除节点

java - Java 中的 Gremlin group By

jquery - 使用 jQuery 选择多个对象

java - Maven 管理的依赖项与声明的具有不同名称的依赖项之间的冲突

java - 使用 VisualVM 分析内存泄漏

java - 为什么 IntelliJ 在使用本地数据源时找不到数据库用户凭据?

java - 为什么Java在输入类型是接口(interface),参数类型是实现类的情况下找不到合适的方法呢?

java - 查看嵌入在 jar 文件中的 .class 文件中的方法 |可能吗 ?

java - 如何在运行时在 WAR 中定位非 Java 资源?