【发布时间】:2018-05-17 12:00:42
【问题描述】:
在 *.class 文件和 Class 类 API 之间有一些我不明白的地方。让我解释一下:
我有一个文件 A.java 代表一个 java 类:
public class A { ... }
Class<?> clazz = A.class;
当我编译 A.java 时,我得到一个 A.class 文件(字节码)。
A.class 文件(字节码)和代表实例类(A.class)的 clazz 之间有什么关系吗?它们是一样的吗?
谢谢
【问题讨论】:
-
"
A.class文件(字节码)和代表实例类的clazz之间是否有任何关系(A.class)? - 是的。Class<A>是您的类型A的面向对象表示。只需查看 documentation ofClass即可了解您可以用它做什么。 -
Class clazz就像变量( String a )。其中包含A.class的内容 -
instance class是什么?A.class给你一个java.lang.Class的实例,它使你能够例如对该类使用反射。 -
.class 的字节被加载到一个类中。对于其余类是一个内部对象,有结构,JVM中的代码,JVM常量池中的常量,
标签: java class oop reflection jvm