JVM类加载机制

来源:互联网 发布:php高级编程书籍 编辑:程序博客网 时间:2024/06/06 00:34

JVM加载class文件

  1. 定义
    JVM将编译生成的.class文件按照需求和一定的规则加载到内存中,并组织成为一个完整的Java应用程序。这个加载的过程是由类加载器来完成的;具体来说是由ClassLoader和它的子类来是实现的。类加载器本身也是一个类,其实质是把类文件从硬件读取到文件内存中。

  1. 类的加载方式
    2.1)隐式加载:使用new创建对象;
    2.2)显示加载:调用class.forName()方法。

  1. 特点
    3.1)当程序启动时,只把基类加载到JVM中
    3.2)每一个类、接口都对应着一个.class文件
    3.3 )类的加载时动态的。

  1. 类加载机制

在Java语言中可以类分为3中:系统类,扩展类,自定义类。Java针对这3中类提供了3中类型的加载器。

这里写图片描述

4.1) Bootstrap ClassLoader /启动类加载器
4.2 )Extension ClassLoader/扩展类加载器
4.3 )App ClassLoader/ 系统类加载器
4.4 )Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)


5类加载的主要步骤

这里写图片描述

1)加载(装载):根据路径找到相对应的class文件,然后导入。

2)连接:连接可以分为3个小步骤
- 验证:检查待加载的类是否正确
- 准备:给类中静态变量分配存储空间
- 解析:将来符号引用转换成直接引用

3)初始化:对静态变量和静态代码块进行初始化。