Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息……
看下klass模型类的继承结构
从继承关系上也能看出来,类的元信息是存储在原空间的
普通的Java类在JVM中对应的是instanceKlass类的实例,再来说下它的三个字类
InstanceMirrorKlass:用于表示java.lang.Class,Java代码中获取到的Class对象,实际上就是这个C++类的实例,存储在堆区,学名镜像类【Class对象】
**InstanceRefKlass:**用于表示java/lang/ref/Reference类的子类【引用】
**InstanceClassLoaderKlass:**用于遍历某个加载器加载的类【加载】
Java中的数组不是静态数据类型,是动态数据类型,即是运行期生成的,Java数组的元信息用ArrayKlass的子类来表示:【动态生成的意思是非JVM内置,入int、double…为静态JVM内置】
**TypeArrayKlass:**用于表示基本类型的数组
**ObjArrayKlass:**用于表示引用类型的数组