(面试题)双亲委派机制

30 阅读1分钟

这个双亲委派机制,每个类加载器都有。所以JDK官方肯定将双亲委派机制代码代码提取到了ClassLoader类中的loadClass方法中,下面说一下主要逻辑。

  • 向上委派:加载这个类的时候会先查找缓存,是否加载了这个类,如果加载了就直接返回,如果没有加载就向上去查找父类是否加载了这个类,如果查找到根类加载器都没有找到,就向下加载这个类
  • 向下加载:查找当前类路径,如果有则加载这个类,否则返回向下查找。如果找到最开始的类加载器都没有,就执行findClass方法,这个方法不重写会抛出ClassNotFound方法

优点:1. 避免类的重复加载,当父类已经加载了这个类的时候,子类就不会再重新加载

2.让程序更安全,防止核心API被篡改,比如自己不小心写了java.lang.Object,这时候优先使用父类的Object