类加载器的分类
JVM支持两种类型的类加载器,分别为引导类加载器 和自定义类加载器
从概念上来讲,自定义类加载器一般指的是程序中由开发人员自定义的一类类加载器,但是Java虚拟机规范却没有这么定义,而是将所有派生于抽象类**classLoader(java.lang.classLoader)**的类加载器都划分为自定义类加载器无论类加载器的类型如何划分,在程序中我们最常见的类加载器始终只有3个,如下所示:
虚拟机自带的加载器
1、启动类加载器 (引导类加载器,Bootstrap classLoader)
1.1 这个类加载使用C/C++语言实现的,嵌套在JVM内部。
1.2 它用来加载Java的核心库 (JAVA HOME/jre/lib/rt.jar、resources.jar或sun.boot.class.path路径下的内容),用于提供JVM自身需要的类。
1.3 并不继承自java.lang.classLoader,没有父加载器。
1.4 加载扩展类和应用程序类加载器,并指定为他们的父类加载器。
1.5 出于安全考虑,Bootstrap启动类加载器只加载包名为java、javax、sun等开头的类。
2、扩展类加载器(Extension ClassLoader)
2.