Java 应用程序类加载器:原理、特点及作用
应用程序类加载器 (AppClassLoader) 是 Java 虚拟机中的一种类加载器,负责加载应用程序的类。它是 Java 虚拟机的默认类加载器,用于加载应用程序的类路径 (classpath) 下的类。
应用程序类加载器具有以下特点:
-
双亲委派模型: 应用程序类加载器遵循双亲委派模型,它会先委托给父类加载器 (扩展类加载器) 进行类加载,只有当父类加载器无法加载时才会尝试自己加载。
-
类路径: 应用程序类加载器的类路径是由系统属性 'java.class.path' 指定的,通常包括当前工作目录和系统类库路径。
-
加载方式: 应用程序类加载器可以加载以 '.class' 文件形式存储的类,也可以加载以 JAR 包形式存储的类。
-
类字节码转换: 应用程序类加载器可以通过调用 'defineClass' 方法将类的字节码转换为 'Class' 对象,并将 'Class' 对象缓存起来,以便后续重复加载时直接返回缓存的 'Class' 对象。
-
类加载方法: 应用程序类加载器可以通过调用 'loadClass' 方法加载类,如果该类已经被加载过,则直接返回缓存的 'Class' 对象,否则会尝试委托给父类加载器加载。
应用程序类加载器的父类加载器是扩展类加载器 (ExtClassLoader),它的父类加载器是引导类加载器 (BootstrapClassLoader)。应用程序类加载器一般是开发人员最常接触到的类加载器,它负责加载应用程序中的类和依赖的第三方库的类。
原文地址: https://www.cveoy.top/t/topic/qzDZ 著作权归作者所有。请勿转载和采集!