类型信息

504 阅读1分钟

类型信息

  • 这个类型的全限定名
  • 其直接超类的全限定名
  • 是类类型还是接口类型
  • 这个类型的访问修饰符
  • 任何直接超接口的全限定名的有序列表

虚拟机还得为每个被装载的类型存储以下信息

  • 该类型的常量池
  • 字段信息
  • 方法信息
  • 除了常量以外的所有类静态变量
  • 一个到类 ClassLoader的引用

每个类型被装载的时候,虚拟机必须跟踪它是由启动类装载器还是由用户自定义类装载器装载的。这是作为方法表中的类型数据的一部分保存的。 虚拟机会在动态连接期间使用这个信息。当某个类型引用另一个类型的时候,虚拟机会请求装载发起引用类型的类装载器来装载被引用的类型。为了能够正确执行动态连接以及维护多个命名空间,虚拟机需要在方法表中得知每个类都是由哪个类装载器装载的。

  • 一个到Class类的引用

对于每一个被装载的类型,虚拟机都会相应地为它创建一个 java.lang.Class类的实例,而且虚拟机还必须以某种方式把这个实例和存储在方法区中的类型数据关联起来。