加载

将类的字节码载入方法区中,内部采用 C++ 的 instanceKlass 描述 java 类,它的重要 field 有:

    _java_mirror 即 java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露给 java 使用
    
    _super 即父类
    
    _fields 即成员变量
    
    _methods 即方法
    
    _constants 即常量池
    
    _class_loader 即类加载器
    
    _vtable 虚方法表
    
    _itable 接口方法表
    
如果这个类还有父类没有加载,先加载父类

加载和链接可能是交替运行的

注意

    instanceKlass 这样的【元数据】是存储在方法区(1.8 后的元空间内),但 _java_mirror是存储在堆中
    
    可以通过前面介绍的 HSDB 工具查看

类加载-加载

 

相关文章: