Java中的ClassLoader(类加载子系统)
它的主要作用是通过多种类加载器(ClassLoader)来查找和加载 class 文件到 Java 虚拟机中
1、ClassLoader的类型
Java 中的类加载器主要有两种类型,即系统类加载器和自定义类加载器;其中系统类加载器包括3种:Bootstrp ClassLoader、Extensions ClassLoader和Application ClassLoader,在之前的Java虚拟机学习中我们详细了解过
2、ClassLoader的继承关系
系统所提供的类加载器有3中类型,但系统提供的 ClassLoader 却不只有3个,共有5个ClassLoader相关类:
- Class Loader:是一个抽象类,其中定义了 ClassLoader 的主要功能
- SecureClassLoader: 继承了抽象类 ClassLoader,但它并不是 ClassLoader的实现类,而是拓展了 ClassLoader 类加入了权限方面的功能,加强了ClassLoader的安全性
- URLClassLoader:继承自 SecureClassLoader 可以通过 URL 路径从 jar 文件和文件夹中加载类和资源
- ExtClassLoader 和 AppClassLoader:都继承自 URLClassLoader,它们都是 Launcher的内部类,Launcher 是 Java 虚拟机的入口应用,ExtClassLoader和AppClassLoader都是在 launcher 中进行初始化的