参考答案:
在 Java 中,类加载器(ClassLoader)是负责将类的字节码加载到 JVM 中的组件。类加载器有多种类型,每种类型负责加载不同的类或资源。以下是常见的几种类加载器:
java.lang.* 包中的类)。它是 Java 类加载器层次结构中的顶层加载器。Bootstrap ClassLoader 是用本地代码实现的,它没有直接的 Java 类表示,因此无法通过 ClassLoader API 访问。JAVA_HOME/lib 目录下的 rt.jar(Java 运行时库)中加载类。lib/ext 目录中的 JAR 文件。Extension ClassLoader 是由 Java 自带的类加载器实现的,继承自 ClassLoader 类。JAVA_HOME/lib/ext 目录或 java.ext.dirs 属性指定的路径中加载类。System ClassLoader 是 ClassLoader 类的一个子类,通常由 JVM 启动时自动创建。CLASSPATH 环境变量指定的路径或启动时通过命令行指定的 -classpath 或 -cp 参数加载类。WebappClassLoader,用来加载 Web 应用内部的类。WebappClassLoader。WEB-INF/classes 目录中的类文件,以及 WEB-INF/lib 目录中的 JAR 包。ClassLoader 类,自定义类加载器来实现特殊的类加载逻辑。例如,可以自定义类加载器从数据库或网络加载类,或修改类加载顺序。ClassLoader 类并重写 findClass() 方法来自定义类加载器的行为。module-info.java 定义的模块)。ModuleLayer 管理,ModuleClassLoader 加载模块中的类。Java 的类加载器遵循一个层次结构,通常是从下往上委派加载类。每个类加载器都有一个父加载器,遵循双亲委派模型:
Bootstrap ClassLoader
|
Extension ClassLoader
|
System ClassLoader (Application ClassLoader)
|
Webapp ClassLoader (Web Applications)
最近更新时间:2024-12-02