【发布时间】:2016-04-25 06:15:13
【问题描述】:
我们对用户定义的类 Employee 使用反射:
Employee e = new Employee();
Class c = e.getClass();
据我所知,首先 JVM 会加载 Employee 类的字节码,然后它还会为每个加载的类(此处为 Employee 类)创建一个 Class.class 对象。在 Class.class 的对象中,JVM 存储有关最近加载的类的元信息。
一个类的元信息有“方法名”、“字段名”等。这些类型如“方法”、“字段”等的类在java.lang.reflect包中定义。
我看到了 Class.java 的代码。我在 Class.class 中找到返回对象或这些类型的对象数组的方法,例如“方法”、“字段”等。但是 Class.class 中没有类型为“方法”、“字段”等的字段.
如果我的上述陈述是错误的,请纠正我。如果上述陈述没有错,那么我有以下疑问: 1)。在 Class.class 的哪个字段中存储有关类的各种信息? 2)。 Employee 的 JVM 对象和 Class.class 的对象存储在哪个内存区域? 3)。 Employee 的 JVM 字节码和 Class.class 的字节码存储在哪个内存区域?
【问题讨论】:
-
为什么它对你很重要?
标签: java class reflection jvm