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