美文网首页
java虚拟机是如何加载java类的

java虚拟机是如何加载java类的

作者: 泽林呗 | 来源:发表于2019-03-10 23:41 被阅读0次

    java语言类型分为两大类:基本类型和引用类型
    引用类型:类、接口、数组类和泛型参数(泛型参数会在编译过程中被擦除)

    操作顺序:加载->链接(验证、准备、解析)->初始化

    加载

    公共父类是启动器加载类
    方式是:双亲委派模式
    关于自定义类加载器,可以参考一下博客
    https://www.cnblogs.com/xrq730/p/4847337.html

    链接

    验证:保证加载的类满足虚拟机的约束
    准备:为被加载类的静态字段分配内存,初始化常量(final)
    准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这个阶段中有两个容易产生混淆的概念需要强调一下,首先,这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化随着对象一起分配在Java堆中。
    解析:解析将符号引用解析为实际引用,如果符号引用指向一个未加载的类,那么解析阶段将触发这个类的加载

    初始化

    运行<clinit>方法为静态变量赋值

    相关文章

      网友评论

          本文标题:java虚拟机是如何加载java类的

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