默认的类加载器有3个
启动类加载器:加载JDK自带的类
扩展类加载器:加载JDK扩展类库
应用类加载器:加载classpath环境中的类
JVM中类加载器加载类的时候需要遵循双亲委派机制
1) 当从classpath中加载一个类的时候不会马上加载。会委托父类加载器加载(扩展类加载器)
2) 当扩展类加载器加载类的时候,也不会马上加载,也会委托父类加载器加载(启动类加载器)
3) 启动类加载器加载类,从指定的路径中加载,如果找到了直接放置在JVM中,如果加载不到,会直接返回到子类加载器
4) 当扩展类加载器加载,如果找到了,直接放置在JVM中,如果加载不到,抛出异常给子类加载器
5) 应用类加载器捕捉异常,开始在指定的位置加载类,如果找到直接加载到JVM中,如果加载不到,那么会将异常抛出给JVM。
6) JVM会打印出异常信息