双亲委派机制

双亲委派机制

双亲委派模式是在Java 1.2后引入的,其工作原理的是,如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载。

以Test.java文件为例

  • Test.java经过编译生成Test.class字节码文件

  • Test.class字节码文件再由java虚拟机解释运行

  • 进入JVM

    • 类加载器

      • 加载先从应用类加载器开始,应用类加载器将请求交给扩展类加载器
      • 扩展类加载器再将请求交给启动类加载器,这时启动类加载器会查找自己所在的目录下是否有Test.class字节码文件,如果有则解释运行,如果没有则会抛出异常,这个时候请求会交给扩展类加载器。
      • 这时扩展类加载器会查找自己所在的目录下是否有Test.class字节码文件,如果有则解释运行,如果没有则会抛出异常,这个时候请求会交给应用类加载器。
      • 这时应用类加载器会查找自己所在的目录下是否有Test.class字节码文件,如果有则解释运行,如果没有则会抛出异常(找不到或无法加载主类)。
posted on 2020-03-05 18:07  秃头靓仔-001  阅读(168)  评论(0编辑  收藏  举报