美文网首页
JVM 类加载过程

JVM 类加载过程

作者: coder_斛律光 | 来源:发表于2019-02-17 16:40 被阅读0次

    虚拟机类加载机制

    一. 加载的时机

    (1)new getstatic putstatic invokestatic 对一个类进行 实例化对象 读取或者设置静态属性 调用静态方法
    (2)反射
    (3)加载一个类时 发现其父类没有初始化
    (4)程序入口的类
    (5) 动态语言支持

    二. 类加载的过程
    1. 加载
      1. 通过类的全限定名获取二进制流
      2. 将流所代表的静态存储结构 转化为方法区的运行时数据结构
      3. 在方法区生成一个Class类型对象 用于访问这个类的各种数据
    2. 验证
      文件格式 元数据 字节码 符号引用
    3. 准备
      为类变量分配内存 并设置初始值的阶段
    4. 解析
      符号引用转化为直接引用的过程
      符号引用: 一组符号来描述所引用的目标 目标可以没加载在内存中
      直接引用: 直接指向目标的指针 相对偏移量 内存中已经存在
    5. 初始化
      执行cinit方法
      cinit 是由 静态变量赋值语句 和 静态代码块合并起来的
    6. 使用
    7. 卸载

    相关文章

      网友评论

          本文标题:JVM 类加载过程

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