美文网首页
类加载器

类加载器

作者: 快点给我想个名 | 来源:发表于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