双亲委派模型

每一个类都有一个对应它的类加载器。系统中的类加载器在协同工作的时候会默认使用双亲委派模型。除了启动类加载器,每个类都有其父类加载器(父子关系由组合(不是继承)来实现)。

双亲委派模型工作过程:

  如果一个类加载器收到了类加载的请求,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载。加载的时候它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成因此所有的加载请求最终都应该传送到顶层的启动类加载器(Bootstrap ClassLoader)中。只有当父加载器无法处理(它的搜索范围中没有找到所需的类)时,子下载器才会尝试自己去加载 当父类加载器为null时,会使用启动类加载器 BootstrapClassLoader 作为父类加载器。

双亲委派好处:

  • 避免同一个类被多次加载;
  • 每个加载器只能加载自己范围内的类;
原文地址:https://www.cnblogs.com/it-deepinmind/p/12419755.html