作者:淡淡木香coolgirl | 来源:互联网 | 2023-10-11 12:38
ClassLoader作用ClassLoader的作用是把编译好的Class文件加载到JVM中。ClassLoader使用的是双亲委托模型来加载类的,每个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的加密。
Java的ClassLoader,布布扣,bubuko.com