【Java】双亲委派模型

141 阅读1分钟

在JVM中存在不同的类加载器,包括:

  1. 启动(Bootstrap)类加载器,
  2. 扩展(Extension)类加载器,
  3. 应用程序(Application)类加载器
  4. 用户自定义的类加载器。

这些类加载器之间的层次关系被称为双亲委派模型,该模型要求除了顶层的启动类加载器外,其余的类加载器都应该有自己的父类加载器,而这种父子关系一般通过组合(Composition)关系来实现,而不是通过继承(Inheritance)。 cea42bc29a5615166984c0b6d2ca6fea.jpeg

1.1 双亲委派模型的过程

某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给最上层的父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;否则,自己去加载。

1.2 双亲委派模型的作用

双亲委派模式保证了Java类随着它的加载器的一起具备了优先级关系。保证了公共类不会被同名自定义类所替代,导致程序的不稳定。