什么是类加载器? 类加载器有哪些?
通过类的限定名获取该类的二进制字节流的代码块叫做类加载器。
主要有四种类加载器
1,启动类加载器:
这个类加载器负责放在<JAVA_Home>\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库。用户无法直接识别的类库。
使用的是Bootstrap ClassLoader
2,扩展类加载器
这个类加载器由sun.misc.Launcher$AppClassLoader实现。它负责<java_home>\lib\ext\目录中的,或者被java.ext.dirs系统变量所指定的路径中的所有类库。用户可以直接使用。 extensions class loader
3,应用程序类加载器
这个类由sun.misc.Launcher$AppClassLoader实现。是ClassLoader中getSystemClassLoader()方法的返回值。它负责用户程序路径(ClassPath)所指定的类库。用户可以直接使用。如果用户没有自定义类加载器,默认使用这个。
4,自定义加载器:
用户自己定义的类加载器,通过继承java.lang.ClassLoader类的方式实现。