类加载器作用:
将.class文件加载到JVM。
类加载步骤:
装载(Loading):由类加载器执行,查找.class文件并读入二进制数据;
链接(Linking):
Ø 验证字节码(因为.class文件有固定格式);
Ø 为静态域分配存储空间(只分配);
Ø 解析该类创建所需要的对其它类的应用;
初始化(Initialization):首先执行静态初始化块static{},初始化静态变量,执行静态方法(如构造方法)。
类加载和双亲委托模式:
类加载器按优先级:
BootstrapClassLoader > ExtClassLoader > AppClassLoader
它们并不是继承关系,只是一种委托关系。当需要加载一个类时,AppClassLoader委托ExtClassLoader,ExtClassLoader委托BootstrapClassLoader。当被委托的加载器无法加载时,才由自己加载。