Java的类加载是通过双亲委派(觉得这个名字很不合适),也就是当自己发现不到一个类时,会去父加载器中查询,直到bootStrap加载器,然后从上向下加载.
简而言之:查找时,从下往上,加载时从上往下.

详细流程图


boot类加载器加载路径

app类加载器加载路径

ext类加载器加载路径
类加载过程源码

所以类加载器是先在内存中查询,没有找到就到递归往上查询,直到最上层没有加载后,从上往下依次加载,直到加载到需要找到的类,如果直到custom类加载器都没有找到该类,抛出异常.
原文:https://www.cnblogs.com/gongcheng-/p/14601152.html