java 类加载器
分类:
Bootstrap ClassLoader:用C++实现,是所有类加载器的最终父加载器,负责将一些关键的java类,如java.lang.object和其他的一些运行时代码先加载到内存中。
ExtClassLoader: 用java实现,是Launcher.java的内部类,由BootStrap ClassLoader加载,但是由于Bootstrap classloader已经脱离了java体系(有c++实现),所以他的父类加载器被设为null。它用于加载java运行环境扩展包中的类(jre/lib/ext)。
AppClassLoader: java实现。也是Launcher.java的内部类。被bootstrap classloader加载。其parent 被设为extclassloader。可以调用ClassLoader.getSystemClassLoader() 来获得,如果程序中没有指定特定的类加载器,那么我们编写的java程序都是由它加载的,它根据classpath加载路径。
ClassLoader:一般我们用户自定义的classloader都是从这个类继承,比如URLClassLoader就是他的一个子类。