Java ClassLoader
三种类加载器
JAVA类加载器实现了一部分 JRE加载JAVA CLASSES到 JVM 的功能。
ClssLoader 实现了懒加载,并且使得JVM不必关心加载文件以及所使用的文件系统。
类加载器虽然只用于实现类的加载动作,但它在JAVA程序中所起到的作用远远不限于类加载阶段。对于任意一个类,都需要有由加载它的类加载器和这个类本身一同确立其在JAVA虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这意味着唯一确定一个JAVA的类需要确认
JavaClassloader + Java Class 相同。
JVM启动时,这三种加载器将被启动:
1 Bootstrap class loader
C++语言实现,是虚拟机自身一部分,其他都是JAVA实现继承java.lang.ClassLoader。负责加载
双亲委派模型
双亲委派模型Parents Delegation Model
双亲委派模型是通过Composition模式实现
双亲委派模型的基本思路是,一个类加载器收到了类加载请求,自己不会加载,而是调用父类加载器去完成
sun.misc.Launcher中继承关系如下
ClassLoader解释如下
java.lang.ClassLoader
A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. A