美文网首页
类加载器

类加载器

作者: 快点给我想个名 | 来源:发表于2019-08-27 23:08 被阅读0次

    类的生命周期

    类生命周期.png
    加载

    查找并加载类的二进制数据。并将其放在方法区内,然后再内存中创建一个java.lang.Class对象 ,用来封装类在方法区内的数据结构

    连接
    • 验证
      确保被加载的类的正确性

    • 准备
      为类的静态变量分配内存,并将其初始化为默认值

    • 解析
      把常量池中的符号引用转换为直接引用

    初始化

    为类的静态变量赋予正确的初始值


    整体图.png

    类的两种使用方式

    主动使用
    • 创建类的实例
    • 访问某个类或者接口的非final的静态变量或者对该静态变量赋值
      (final修改的变量必须为编译前就初始化的例如A类中常量:private statis final str = UUID.randomUUID().toString(),那么B.str就会导致A被初始化)
    • 调用类的静态方法
    • 反射
    • 初始化一个类的子类
    • java虚拟机启动时被标明为启动类的类(main方法所在的类)
    • jdk1.7开始提供动态语言的支持
    被动使用

    除了上述几种情况,其他使用java类的方式都被看做是对类的被动使用,都不会导致类的初始化。

    相关文章

      网友评论

          本文标题:类加载器

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