jvm支持两种类加载器,引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。
从概念上讲,自定义加载器一般是指开发人员自定义的一类加载器,但是java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。

上图中,Bootstrap Class Loader 为引导类加载器,其他的都为自定义类加载器。
这里的四者的关系是包含关系,不是上层下层,也不是父子继承关系。
也可以从编写语言来分类,Bootstrap Class Loader是使用c和c++来编写,其他的是使用java语言编写。

package com.leon.java1;public class ClassLoaderTest {public static void main(String[] args) {//获取系统类加载器ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();System.out.println(systemClassLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2//获取其上层:扩展类加载器ClassLoader extClassLoader = systemClassLoader.getParent();System.out.println(extClassLoader);//sun.misc.Launcher$ExtClassLoader@1540e19d//获取其上层:获取不到引导类加载器ClassLoader bootstrapClassLoader = extClassLoader.getParent();System.out.println(bootstrapClassLoader);//null//对于用户自定义类来说:默认使用系统类加载器进行加载ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();System.out.println(classLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2//String类使用引导类加载器进行加载的。---> Java的核心类库都是使用引导类加载器进行加载的。ClassLoader classLoader1 = String.class.getClassLoader();System.out.println(classLoader1);//null}
}

几种类加载器的使用体会相关推荐

  1. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | 加固厂商在 ART 下使用的两种类加载器 | InMemoryDexClassLoader 源码 )

    文章目录 一.加固厂商在 ART 下使用的两种类加载器 ( InMemoryDexClassLoader | DexClassLoader ) 二.InMemoryDexClassLoader 源码分 ...

  2. 【Android 逆向】类加载器 ClassLoader ( Android 的八种类加载器 | ClassLoader | BaseDexClassLoader | DexClassLoader )

    文章目录 一.Android 类加载器 1.ClassLoader 抽象类 2.BootClassLoader 3.BaseDexClassLoader 4.PathClassLoader 5.Dex ...

  3. 未能成功加载扩展程序_【JAVA虚拟机(JVM)精髓】09-几种不同的类加载器

    持续更新JVM相关知识,敬请关注: Java虚拟机精髓专栏​zhuanlan.zhihu.com 上一节说了下类加载器和类加载过程.这一节我们看下几种不同的类加载器. JVM支持的类加载器有两类,分别 ...

  4. Java类加载器详解

    Java虚拟机中的类加载有三大步骤:,链接,初始化.其中加载是指查找字节流(也就是由Java编译器生成的class文件)并据此创建类的过程,这中间我们需要借助类加载器来查找字节流. Java虚拟机默认 ...

  5. 类加载器的分类及关系

    类加载器的分类及关系 JVM支持两种类型的类加载器 .分别为引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader). 从概念上来 ...

  6. 编写递归下降语法分析器_面试BAT必问的JVM,今天我们来说一说它类加载器的底层原理...

    类加载器的关系 类加载器的分类 JVM支持两种类加载器,一种为引导类加载器(Bootstrap ClassLoader),另外一种是自定义类加载器(User Defined ClassLoader) ...

  7. 深入探讨 Java 类加载器

    深入探讨 Java 类加载器 类加载器(class loader)是 Java™中的一个很重要的概念.类加载器负责加载 Java 类的字节代码到 Java 虚拟机中.本文首先详细介绍了 Java 类加 ...

  8. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 )

    文章目录 一.ART 虚拟机下 DexClassLoader 类加载器脱壳点总结 1.file_magic.cc#OpenAndReadMagic 函数 2.dex_file.cc#DexFile:: ...

  9. 随笔18 java中的类加载器

    类的加载是由类加载器完成的,类加载器包括:根加载器( BootStrap ).扩展加载器( Extension ).系统加载器( System )和用户自定义类加载器( java.lang.Class ...

最新文章

  1. html怎么压缩ttf,如何使用CSS包含.ttf字体?
  2. 解决错误:Main application must be in the list of ap...
  3. vue项目使用mint-ui库
  4. LOJ#2132. 「NOI2015」荷马史诗
  5. 计算机的特点 分类及其应用,2016计算机知识:计算机的特点、分类及其应用(1)...
  6. 数据告诉你,抖音是怎么在半年之内逆袭的
  7. 计算机考试考试被纳入中考了吗,中考迎来变动,将在2022年正式执行,学生家长们注意了!...
  8. 光子 量子 DNA计算机的发展情况,CPU的发展与量子计算机.pdf
  9. CPU+GPU异构集群搭建的总结说明
  10. 【北京迅为】i.MX6ULL终结者Linux RS232/485驱动实验RS232驱动
  11. html开发一个月多少钱,html5前端开发工资一般是多少
  12. 为什么传输前要进行编码与调制
  13. TOGAF(企业架构)
  14. TensorFlow2.8.0报错TypeError: Descriptors cannot not be created directly.
  15. ‘v-model’ directives require no argument
  16. 联想小新pad安装Google Play教程
  17. cin.tie与sync_with_stdio加速I/O
  18. 关键词分析和查找工具
  19. 管理计算机中木桶原理,2014国考面试备考:管理学原理的应用-木桶原理篇
  20. 【个人网站设计】【1】

热门文章

  1. Android-滑动解锁高亮文字自定义TextView
  2. 在asp.net中如何自己编写highcharts图表导出到自己的服务器上来
  3. 莱芜长运公共交通有限公司简介
  4. rfid4-写成platform驱动
  5. C#多线程函数如何传参数和返回值
  6. javascript实用技巧--数组.
  7. C2248编译错误的原因和解决--VC6向VC7.1迁移真是累死人,N多编译错误
  8. Oracle ORA-00903:表名无效
  9. 设计模式之外观模式(Fasade Pattern)
  10. Android Studio在线安装Android SDK注意事项