java中默认的classLoader 有三个。
1、BootStrapClassLoader 用来加载核心类库如jdk 等,就是在lib下的类库 C++实现
2、ExtClassLoader 用于加载扩展类库
3、AppClassLoader 用户加载用户的class
虚拟机启动的时候会 将BootStrapClassLoader 初始化,然后将 ExtClassLoader 的父类设置为BootStrapClassLoader,将AppClassLoader 的父类设置为ExtClassLoader
java中类加载使用了双亲委托模式,双亲委托即加载一个类的时候BootStrapClassLoader ->ExtClassLoader ->AppClassLoader
类加载机制就是 从 下向上层层查找,都找不到的时候 使用 当前classLoader 去加载。