c++编写,加载java核心库 java.*,构造ExtClassLoader和AppClassLoader。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直接获取到启动类加载器的引用,所以不允许直接通过引用进行操作
java编写,加载扩展库,如classpath中的jre ,javax.*或者 java.ext.dir 指定位置中的类,开发者可以直接使用标准扩展类加载器。
java编写,加载程序所在的目录,如user.dir所在的位置的class
java编写,用户自定义的类加载器,可加载指定路径的class文件
好处:
.class。通过委托去向上面问一问,加载过了,就不用再加载一遍。保证数据安全。.class不能被篡改。通过委托方式,不会去篡改核心.clas,即使篡改也不会去加载,即使加载也不会是同一个.class对象了。不同的加载器加载同一个.class也不是同一个Class对象。这样保证了Class执行安全。
原文:https://www.cnblogs.com/0error0warning/p/12778830.html