我读过很多关于类加载器和类的论坛,这可能是我犯的错误。我现在很困惑。
public static final字段,类型为java.lang.Class”。这是真的吗?那么,为什么我们可以直接在代码中访问.class而不编译呢?还有其他有效的信息可以帮助更好地理解这一点吗?
发布于 2013-11-09 05:40:30
ClassLoader是类的容器。因此,当您需要加载类时手动创建它,或者JVM在启动时自动创建它来加载应用程序。有一个类加载器的层次结构,所以它更复杂一些,你引用的那篇文章很好地介绍了这个主题。public class Role {
public String role;
}它在字节或这里都没有该字段的跟踪:
public class bear.core.Role {
public java.lang.String role;
public bear.core.Role();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
}对于你的最后一个问题,现代IDE只需知道有这个.class字段。
发布于 2013-11-09 05:41:06
When does ClassLoader get instantiated?类加载器在链接前编译后由JVM加载类文件时被实例化!
https://stackoverflow.com/questions/19872482
复制相似问题