美文网首页
klass模型

klass模型

作者: nhhnhh | 来源:发表于2020-10-22 08:53 被阅读0次

    学java的都知道,我们的代码是由一个个类文件组成,类文件编译成class文件放在jvm中去运行。那么class文件在jvm中又是如何存储呢。存储到jvm中的就是class文件吗?
    Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息
    Klass类的继承结构如下图所示:


    图片.png

    首先所有的klass文件都存储在jvm的metadata区。分为2个大类。
    一个是普通的类文件对应的InstanceKlass类的实例。一个是java运行时生成的
    ArrayKlass类。
    InstanceKlass有3个子类:
    1.InstanceMirrorKlass:用于表示java.lang.Class,Java代码中获取到的Class对象,实际上就是这个C++类的实例,存储在堆区,学名镜像类
    2.InstanceRefKlass:用于表示java/lang/ref/Reference类的子类
    3.InstanceClassLoaderKlass:用于遍历某个加载器加载的类
    ArrayKlass有2个子类:
    1.TypeArrayKlass:用于表示基本类型的数组
    2.ObjArrayKlass:用于表示引用类型的数组

    相关文章

      网友评论

          本文标题:klass模型

          本文链接:https://www.haomeiwen.com/subject/atdsmktx.html