类加载器的委托机制,如果A类引用了B类,java虚拟机将使用A类的加载器来加载B类。每个类加载器加载是又会委托其上级类加载器加载,当所有祖宗类都没加载到这个类,回到发起着的类加载器,如果没有找到就会抛异常。
有个问题:A类(ClassPath下的类) B类(JRE/lib/ext/ 下的类) C类(ClassPath下的类)。A类包含B类,B类包含C类,当加载A类时,因为A类引用了B类,就会用A类的AppClassLoader加载器加载B类,因委托机制,加载B类就会使用ExtClassLoader类加载器,因B类引用了C类,B类的加载器就会向上找加载器,没有找到,回到发起者的B类加载器,B类加载器也没中到,是不是就会报异常错误。这样理解对不对? |