[JVM笔记].类加载流程

367 阅读1分钟

类加载流程

  • 下图描述了类加载到JVM中,到卸载出内存的整个流程。

[类加载生命周期]

分为加载、连接、初始化、使用和卸载五个步骤。

  1. 加载:查找并加载类的二进制文件
  2. 连接:将已读入内存的二进制文件合并到JVM中国
  • 验证:确保被加载类的正确性
  • 准备:为类的静态变量分配内存,并初始化
  • 解析:把常量池中的符号引用转化为直接引用
  1. 为类的静态变量赋初始值

功能

  • 通过类的全限定名加载类的二进制文件
  • 把类的二进制文件转换为方法区的运行时数据结构
  • 在堆上创建一个java.lang.Class对象,用来封装类在方法区的数据结构,并提供接口。

加载方式

  • 最常见的方式:从本地系统、归档jar文件中加载
  • 动态加载:将java源文件编译成class文件
  • 其他方式:从网络、专有数据库中加载

类加载器

  • 启动类加载器(BootstrapClassLoader):加载启动的基础模块类
  • 平台类加载器(PlatformClassLoader):加载一些平台相关的类
  • 应用程序类加载器(AppClassLoader):加载一些应用级别的模块
  • 自定义类加载器(UserClassLoader):用户可以自定义类的加载方式

类加载器关系

[类加载关系]