Java的ClassLoader

ClassLoader作用
	ClassLoader的作用是把编译好的Class文件加载到JVM中。ClassLoader使用的是双亲委托模型来加载类的,每个ClassLoader都有一个父类加载器,当ClassLoader需要加载某个类时,它先把这个任务委托给它的父类加载器试图加载,如果所有的父类加载器都没能加载到,才由自己加载。
Java默认提供3个ClassLoader
	1.	启动类加载器(BootStrap ClassLoader):启动类加载器是Java类加载器的顶层加载器,负责加载JDK中的核心类库,如rt.jar、resources.jar、jce.jar等。
	2.	扩展类加载器(Extension ClassLoader):扩展类加载器是负责加载JDK的扩展类库的,默认是ext目录下的所有jar.
	3.	应用类加载器(App ClassLoader):应用类加载器负责加载classpath指向的class文件和jar包。
双亲委托模型的好处
	双亲委托模型可以避免重复加载,当父类加载器已经加载了该类的时候,就没有必要再加载一次。另外从安全方面考虑,通过这种委托模式,可以避免用户写一些类来动态替代java核心api中定义的类。
ClassLoader的应用场景
	ClassLoader可应用于服务器的热布署;
	ClassLoader可应用Class的加密。

原文地址:https://www.cnblogs.com/zengxianxi/p/3618972.html