根、扩展、系统类加载器
一、类加载器的分类
?
?????1.Java虚拟机自带的类加载器
?
??????????? --> 根类加载器(Bootstrap):该类加载器没有父加载器。它负责加载虚
????????????????? 拟机的核心类库,如:java.lang.*等根类加载器从系统属性sun.bo
????????????????? ot.class.path所指定的目录中加载类库。根类加载的实现依赖于底
??????????????????层操作系统,属于虚拟机实现的一部分,它是由C++语言编写。并
????????????????? 未继承自java.lang.ClassLoader类。
?
??????????? --> 扩展类加载器(Extension):它的父加载器为根类加载器。它从
????????????????? java.ext.dirs系统属性所指定的目录中加载类库,或者从JDK的安
????????????????? 装目录的jre\lib\ext子目录(扩展目录)下加载类库,如果用户将创
??????????????????建的JAR文件拷贝到这个目录下,也会自动有扩展类加载器加载,扩
??????????????????展类加载器是由Java语言编写,是java.lang.ClassLoader类的子
????????????????? 类。
?
??????????? --> 系统类加载器(System):也称为应用类加载器,它的父加载器为扩
??????????????????展类加载器。它从环境变量classpath或者系统属性java.class.p
????????????????? ath所指定的目录中加载类,它是用户自定义类加载器的默认类加载
????????????????? 器。用Java语言编写。是java.lang.ClassLoader类的子类。
?
?????2.用户自定义类加载器,都拓展自java.lang.ClassLoader类的子类