类加载器

将字节码问价加载到内存,系统默认三个类加载器

BootStrap  ExtClass  AppClassLoader,每个类负责加载特定位置的类

类加载器也是java类,因为其他是java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这正是BootStrap


当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢?
首先当前线程的类加载器去加载线程中的第一个类
如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B

还可以直接调用ClassLoader。loadClass()方法来指定某个类加载器去加载,某个类。

每个类加载器加载类时,又先委托给骑上积类加载器
当所有父类加载器没有加载到类,回到发起者类加载器,还加载不了则抛出ClassNotFoundException,不是再去找发起者类加载器的儿子,因为没有getChild方法
 


你可能感兴趣的:(java,虚拟机,ClassLoader)