JVM-类加载器-类加载器分类

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java 面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001


类加载器的分类是指Java虚拟机中不同的类加载器,它们负责将Java类加载到内存中,并将其转换为Java对象。根据类加载器的来源和功能,可以将类加载器分为以下几种:

  • 启动类加载器 :这是由C/C++语言实现的,嵌套在JVM内部的类加载器。它用来加载Java的核心库,即JAVAHOME/jre/lib目录下的jar包,或者sun.boot.class.path系统属性所指定的路径下的类库。它是所有其他类加载器的父类加载器,但它并不继承自java.lang.ClassLoader类。

  • 扩展类加载器 :这是由Java语言实现的,继承自java.lang.ClassLoader类。它用来加载扩展目录下的类库,即JAVAHOME/jre/lib/ext目录下的jar包,或者java.ext.dirs系统属性所指定的路径下的类库。它的父类加载器是启动类加载器。

  • 应用程序类加载器 :这也是由Java语言实现的,继承自java.lang.ClassLoader类。它用来加载应用程序目录下的类库,即classpath或者java.class.path系统属性所指定的路径下的类库。它是程序中默认的类加载器,一般来说,Java应用的类都是由它来完成加载。它的父类加载器是扩展类加载器。

  • 自定义类加载器 :这是由用户自己编写的,继承自java.lang.ClassLoader或者其子类。它可以根据用户的特定需求来定制类的加载方式,例如从网络、数据库或者加密文件中加载类。它可以选择是否遵循双亲委派模型,即是否先让父类加载器尝试加载请求的类。

以上就是我对于类加载器的分类的回答,希望对你有所帮助。😊

源: 与必应的对话, 2023/10/24 (1) 「JVM篇」类加载器的三种分类及双亲委派模式原理 .... https://zhuanlan.zhihu.com/p/187549718. (2) 类加载器的分类及关系 - CSDN博客. https://blog.csdn.net/qq_33626996/article/details/112847648. (3) 类加载器的分类 ClassLoader - 八度易飞 - 博客园. https://www.cnblogs.com/wenqidao/p/14390136.html.

最后更新于