Java Class装载系统

类装载

类装载的条件

  1. 创建一个类的实例时,比如使用new关键字、克隆、序列化、反射等
  2. 调用类的静态方法、使用类的静态字段
  3. 使用reflect包中的反射类的方法时
  4. 初始化子类时要求先初始化父类
  5. 启动虚拟机时含有main方法的类

加载类

  1. 通过类的全名,获取类的二进制数据
  2. 解析类的二进制数据流为方法区的数据结构
  3. 创建java.lang.class类的实例,表示该类型

验证类

格式检查、语义检查、字节码验证、符号引用验证

解析类

将类、接口、字段和方法的符号引用转为直接引用

初始化

执行类的初始化方法 (静态赋值语句及静态语句块)

ClassLoader

Java Class装载系统_第1张图片

图片摘自实战Java虚拟机

你可能感兴趣的:(Java,面试必备知识,java,jvm)