程序员社区

(JVM面试题)说说类加载的过程

  • 加载(Loading),通过一个类的全限定名来获取定义此类的二进制字节流;将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。
  • 验证(Verification),确保Class文件的字节流中包含的信息符合《Java虚拟机规范》的全部约束要求,保证这些信息被当作代码运行后不会危害虚拟机自身的安全。
  • 准备(Preparation),正式为类中定义的变量(即静态变量,被static修饰的变量)分配内存并设置类变量初始值。
  • 解析(Resolution),是 JVM 将常量池内的符号引用替换为直接引用的过程。
  • 初始化(Initialization),执行类构造器 方法的过程,执行所有类变量的赋值动作和静态语句块(static{}块)。

其中验证、准备、解析统称为称为连接(Linking)

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (JVM面试题)说说类加载的过程

一个分享Java & Python知识的社区