美文网首页
扩展类加载器和应用程序类加载器之间有什么区别?

扩展类加载器和应用程序类加载器之间有什么区别?

作者: JAVA加油 | 来源:发表于2024-04-24 07:00 被阅读0次

扩展类加载器(Extension Class Loader)和应用程序类加载器(Application Class Loader)是Java中两个常见的类加载器,它们之间存在以下区别:

加载范围: 扩展类加载器负责加载Java扩展库,位于<JAVA_HOME>/lib/ext目录下的JAR文件。它加载的类通常是供Java平台扩展使用的类。应用程序类加载器负责加载应用程序的类,包括应用程序的类路径(classpath)下的类文件。它加载的类是应用程序自身的类。

委派顺序: 扩展类加载器在加载类时,会先委派给父类加载器(通常是启动类加载器)进行加载,只有当父类加载器无法加载时,扩展类加载器才会尝试加载该类。这保证了扩展类加载器无法加载Java核心类库中的类。

应用程序类加载器在加载类时,也会先委派给父类加载器(通常是扩展类加载器)进行加载,只有当父类加载器无法加载时,应用程序类加载器才会尝试加载该类。这保证了应用程序类加载器无法加载Java核心类库和扩展库中的类。

默认加载器: 扩展类加载器是应用程序类加载器的父类加载器,也是应用程序类加载器的默认父加载器。当使用应用程序类加载器加载类时,如果未指定父加载器,会默认使用扩展类加载器作为父加载器。

类路径: 扩展类加载器的类路径包括<JAVA_HOME>/lib/ext目录下的JAR文件。应用程序类加载器的类路径包括应用程序的类路径(classpath),通常是通过命令行参数或配置文件指定的。

相关文章

  • Java一些基础知识

    JAVA 类加载器 根类加载器:jre/lib 扩展类加载器:jre/lib/ext扩展类库 应用类加载器:用户自...

  • 理解类加载的双亲委派模型

    类加载器 启动类加载器 BootstrapClassLoader 扩展类加载器 ExtensionClassLoa...

  • 自定义ClassLoad加载网络Class文件

    在java中,所有的类都是通过类加载器所加载的,除根类加载器(bootstrap)外,扩展类加载器和应用类加载器都...

  • Java类加载顺序和JVM部分概念

    1.class加载 2.类加载器 :a. 启动加载器b. 扩展加载类c. 应用程序加载类3.双亲委派模式a. 首先...

  • java类加载器及其原理

    java类加载器 : java中默认有三种类加载器:引导类加载器,扩展类加载器,系统类加载器(也叫应用类加载器) ...

  • ClassLoader和双亲委派机制总结

    类加载器(ClassLoader)启动类加载器(Bootstrap ClassLoader)扩展类加载器(Exte...

  • 每天一个知识点(4)--JVM-类加载子系统-双亲委派

    在上篇中介绍了JVM中的三种类加载器,按照父子关系分别为启动类加载器、扩展类加载器、应用程序类加载器三个。当一个类...

  • 一个java文件的一生

    .java文件——javac——class文件——进入类加载子系统——选择类加载器(引导类加载器、扩展类加载器、应...

  • JVM性能调优

    JVM类加载机制详解 从JDK源码级别深度剖析加载全过程 启动类、扩展类、应用程序类加载器源码深度剖析 类加载双亲...

  • Ⅱ.类加载器

    一、加载过程 CLASS文件由CAFEBABE开始。 引导类加载器(扩展类加载器(系统类加载器)) 注意: 系统核...

网友评论

      本文标题:扩展类加载器和应用程序类加载器之间有什么区别?

      本文链接:https://www.haomeiwen.com/subject/zexhxjtx.html