(补充)类加载

类加载的过程

  1. 连接

    验证(字节码文件的验证)

    准备 将静态内容做初始化

    解析(将符号引用 变为直接引用)

  2. 初始化

    给静态内容赋值

类何时被加载?

首先先了解一下类的主动使用和被动使用

类的主动使用
  1. 创建类的实例对象
  2. 使用静态方法
  3. 调用静态的成员变量 ,成员变量只能在运行期间确定其值
  4. 被表明为启动器类 会被加载(类中存在main方法)
  5. 反射(Class.forName(“xxx.xxx.xxx”))
  6. 初始化子类父类会被加载。
类的被动使用:
  1. 初始化数组时不会导致数组对应类型加载
  2. 通过子类访问父类中独有的静态内容时,不会导致子类加载
  3. 类中的静态常量值如果是定值不会导致类加载
  4. 加载一个类时不会导致父接口加载 (注意如果通过类对象调用接口中定义的内容 接口会被加载)

总结:只有类的主动使用才能使类加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值