参考答案:
在 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