JAVA中有哪几种类加载器呢?

java问题王 Java每日一问 发布时间:2021-10-19 14:08:51 阅读数:14776 1
下文讲述java中类加载的方法分享,如下所示:

启动类加载器 bootstrap class loader

  启动类加载器主要加载的是JVM自身需要的类,这个类加载是用C++语言实现的,是虚拟机自身的一部分
它负责将 /lib路径下的核心类库或-Xbootclasspath参数指定的路径下的jar包加载到内存中
	注意事项:
	 1.由于虚拟机是按照文件名识别加载jar包的
     如servlet-jsp.jar,当文件名不能被JVM虚拟机识别时,则无法实现此方式的加载
     2.此模式通常只加载(包名为java、javax、sun等开头的类) 
    

扩展类加载器 extensions class loader

  它负责加载JAVA_HOME/lib/ext目录下或者由系统变量-Djava.ext.dir指定位路径中的类库,开发者可以直接使用标准扩展类加载器。

应用程序类加载器 application class loader

  应用程序加载器是指 Sun公司实现的sun.misc.Launcher$AppClassLoader。它负责加载系统类路径java -classpath或-D java.class.path 指定路径下的类库,也就是我们经常用到的classpath路径,开发者可以直接使用系统类加载器,一般情况下该类加载是程序中默认的类加载器,通过ClassLoader#getSystemClassLoader()方法可以获取到该类加载器。

自定义类加载器 java.lang.classloder

  自定义类加载器需要继承java.lang.ClassLoader

类加载器之间的关系

      
  1. 启动类加载器,由C++实现,没有父类
  2. 拓展类加载器(ExtClassLoader),由Java语言实现,父类加载器为null
  3.   
  4. 系统类加载器(AppClassLoader),由Java语言实现,父类加载器为ExtClassLoader
  5.   
  6. 自定义类加载器,父类加载器肯定为AppClassLoader
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202110/1502.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者