JVM类装载的执行过程

简介: JVM(Java虚拟机)类装载的执行过程包括以下几个步骤:
  1. 加载(Loading):通过类加载器(ClassLoader)查找并加载字节码文件(.class文件)。类加载器根据类的全限定名来定位字节码文件。
  2. 验证(Verification):对加载的字节码文件进行验证,确保其符合JVM规范。验证过程包括文件格式验证、元数据验证、字节码验证和符号引用验证等。
  3. 准备(Preparation):为类的静态变量(被static修饰的变量)分配内存空间,并设置初始值。非静态变量(实例变量)会在对象实例化时分配内存空间并设置初始值。
  4. 解析(Resolution):将符号引用(Symbolic Reference)替换为直接引用(Direct Reference)。符号引用包括类和接口的全限定名、字段和方法的名称等。
  5. 初始化(Initialization):执行类的初始化代码,包括静态变量的赋值和静态代码块的执行。初始化过程是类加载的最后一步,且是线程安全的。
  6. 使用(Usage):使用已加载和初始化的类创建对象并调用类的方法。

值得注意的是,JVM使用了延迟加载(Lazy Loading)的策略,即只有在需要使用某个类时才会进行加载和初始化。同时,JVM还提供了类的卸载(Unloading)机制,当某个类不再被使用时,JVM会将其从内存中卸载。

目录
相关文章
|
5天前
|
安全 Java
JVM的类的生命周期
JVM的类的生命周期
|
3月前
|
安全 Java 程序员
深入理解jvm - 类加载过程
深入理解jvm - 类加载过程
50 0
|
3月前
|
存储 Java 编译器
深入理解JVM - 类文件结构
深入理解JVM - 类文件结构
58 1
|
4月前
|
缓存 安全 前端开发
JVM(类的加载与ClassLoader、双亲委派机制)
JVM(类的加载与ClassLoader、双亲委派机制)
|
4月前
|
安全 IDE Java
jvm性能调优实战 - 44Metaspace区域是如何因为类太多而发生内存溢出OOM
jvm性能调优实战 - 44Metaspace区域是如何因为类太多而发生内存溢出OOM
141 0
|
5月前
|
算法 Java 程序员
[JVM] 字节二面~简述垃圾回收以及类加载过程,别说八股文,我想看到你自己的理解
[JVM] 字节二面~简述垃圾回收以及类加载过程,别说八股文,我想看到你自己的理解
|
5月前
|
存储 Java
[JVM] 京东一面~说一下Java 类加载过程
[JVM] 京东一面~说一下Java 类加载过程
|
5月前
|
存储 前端开发 安全
浅谈 JVM 类加载过程
浅谈 JVM 类加载过程
43 0
|
7月前
|
存储 缓存 安全
【面试题精讲】JVM-类的生命周期
【面试题精讲】JVM-类的生命周期
|
7月前
|
存储 Java
【面试题精讲】JVM*类的生命周期*加载阶段
【面试题精讲】JVM*类的生命周期*加载阶段