实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。
主要有四种类加载器:
- 启动类加载器:用于加载 java 核心类库(在 JRE 的 lib 目录下),无法被 java 程序直接引用;
- 扩展类加载器:同于加载 java 的扩展库(在 JRE 的 lib 目录下的 ext 扩展目录中的 JAR 类包)。java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载java类;
- 系统类加载器(应用类加载器):它根据 java 应用的类路径(classpath)来加载 java 类,主要就是加载自己写的那些类。可以通过 ClassLoader.getSystemClassLoader() 来获取它;
- 用户自定义类加载器:负责加载用户自定义路径下的类包。通过继承 java.lang.ClassLoader 类的方式来实现。