将字节码问价加载到内存,系统默认三个类加载器
BootStrap ExtClass AppClassLoader,每个类负责加载特定位置的类
类加载器也是java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap
当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?
首先当前线程的类加载器去加载线程中的第一个类
如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B
还可以直接调用ClassLoader。loadClass()方法来指定某个类加载器去加载,某个类。
每个类加载器加载类时,又先委托给骑上积类加载器
当所有父类加载器没有加载到类,回到发起者类加载器,还加载不了则抛出ClassNotFoundException,不是再去找发起者类加载器的儿子,因为没有getChild方法