类加载器(class loader)负责加载 Java 类的字节代码到 Java 虚拟机中,使java类可以动态的加载到虚拟机中执行。
java使用java类的方式是:java源代码经过编译之后得到的字节码文件(.class文件),类加载器负责读取.class文件并转化为一个class对象,通过对象的newInstance方法就可以得到类的实例。
所有的类加载器都是java.lang.ClassLoader类的子类,java.lang.ClassLoader的基本职责是找到或者生成类的字节码文件,还负责加载类所用到的资源文件。
java默认有三种类加载器:启动类加载器(Bootstrap)、扩展类加载器(ExtClassLoader)、系统类加载器(应用类加载器)(AppClassLoader)。其中启动类加载器负责加载jre下lib目录里所有的jar文件,与java虚拟机的启动有关,涉及到jvm的本地实现,一般很难得到启动类加载器的引用。扩展类加载器负责lib/ext目录下的类库加载到内存中。系统类加载器负责将classpath下的类加载到内存。