类的加载器:将class文件加载到JVM中执行这个文件.
Java中将类加载器分成三类:
引导类加载器: 负责加载 JAVA_HOME/jre/lib/rt.jar
扩展类加载器: 负责加载 JAVA_HOME/jre/lib/ext/*.jar
应用类加载器: 加载类路径下的所有的class.(负责加载我们自定义的类)
这些类加载器如何保证类只会加载一次而且不会重复加载:
这是因为类加载器的全盘委托机制:
eg:
class A { String s; }
由应用类加载器得到A.class String,class,委托给扩展类加载器,扩展类加载器又委托给引导类加载器.引导类加载器加载String.class.将其他的类的class向下给扩展类加载器.扩展类加载器没有找到.向下给应用类加载器,将A.class 加载.