【JVM】类加载

本文详细介绍了JVM中的Klass结构,包括InstanceKlass、InstanceMirrorKlass、InstanceRefKlass和InstanceClassLoaderKlass,以及ArrayKlass的TypeArrayKlass和ObjArrayKlass。同时阐述了类的加载过程,强调了类加载过程中的关键步骤和不同类型的Klass在JVM中的角色。
摘要由CSDN通过智能技术生成

Klass

class和klass的区别:

  • class是java类(java代码
  • klass是java类在JVM的存在形式(c++代码

Klass类分别由InstanceKlass和ArrayKlass继承,其中InstanceClass用来表示普通的java类即非数组类,ArrayKlass是来表示Java数组的元信息。

在这里插入图片描述

InstanceKlass

  • 普通类对应的是instanceKlass类的实例。
    类加载器将.class文件加载进系统,然后将.class文件生成的类的元信息就是存储在InstanceKlass的

  • InstanceKlass的几个子类又去存放子类对应存放的东西,由此也可以看到class对象和存放元信息的结构是分开的(元信息是在InstanceKlass,class对象是在InstanceMirrorKlass

  • 对象内存结构的klass pointer中的klass就是指InstanceKlass及其子类

  • 我们把java程序中的一个地址在 HSDB解析出来就可以看到
    java中的类在jvm中是InstanceKlass
    class对象是InstanceMirrorKlass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值