0%

18.1.2 类的加载

18.1.2 类的加载

类加载

当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载连接初始化三个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或类初始化。

类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。
系统中所有的类实际上也是实例,它们都是java.lang.Class的实例。

类加载器

类的加载由类加载器完成,类加载器通常由JVM提供,这些类加载器也是前面所有程序运行的基础,

  • JVM提供的这些类加载器通常被称为系统类加载器。
  • 除此之外,开发者可以通过继承ClassLoader基类来创建自己的类加载器。

类加载来源

通过使用不同的类加载器,可以从不同来源加载类的二进制数据,通常有如下几种来源:

  • 从本地文件系统加载class文件,这是前面绝大部分示例程序的类加载方式.
  • JAR包加载class文件,这种方式也是很常见的,前面介绍JDBC编程时用到的数据库驱动类就放在JAR文件中,JVM可以从JAR文件中直接加载该class文件。
  • 通过网络加载class文件。
  • 把一个Java源文件动态编译,并执行加载。

类加载器通常无须等到”首次使用”该类时才加载该类,Java虚拟机规范允许系统预先加载某些类

原文链接: 18.1.2 类的加载