1、启动加载器(Bootstrap ClassLoader):虚拟机内置的类加载器。
    2、平台类加载器(Platform ClassLoader):负责加载JDK中一些特殊的模块。
    3、系统类加载器(System ClassLoader):负责加载用户类路径上所指定的类库。

    类加载器委派模型:

    类加载器模型.png使用最下面类加载器加载字节码文件,此时不会自己去加载,会向上一层一层委托其他加载器加载,其他类无法完成加载,会一层一层返回,此时子加载器才会自己加载。

    使用最多的是系统类加载器:
    ClassLoader.getSystemClassLoader()可以获取到系统类加载器,调用getParent()得到父类加载器(平台类加载器),再次调用getParent()可以得到(启动类加载器);

    常用方法:
    ClassLoader.getSystemClassLoader() // 获取系统类加载器
    ClassLoader.getResourceAsStream(String name) //加载某一个文件

    1. // 获取系统加载器
    2. ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
    3. // 使用系统加载器加载prop.properties,ps:如果是相对路径则默认去该类所在文件寻找
    4. InputStream is = systemClassLoader.getResourceAsStream("prop.properties");
    5. // 创建Properties对象
    6. Properties prop = new Properties();
    7. // 使用prop对象读取文件数据
    8. prop.load(is);
    9. // 打印并关闭流
    10. System.out.println(prop);
    11. prop.clear();