类加载器作用:

将.class文件加载到JVM。

类加载步骤:

  • 装载(Loading):由类加载器执行,查找.class文件并读入二进制数据;
  • 链接(Linking):

    • 验证字节码(因为.class文件有固定格式);
    • 为静态域分配存储空间(只分配);
    • 解析该类创建所需要的对其它类的应用;
  • 初始化(Initialization):首先执行静态初始化块static{},初始化静态变量,执行静态方法(如构造方法)。

类加载和双亲委托模式: 首先委托上级类加载器加载,上级无法加载的才由自己加载

类加载器按优先级:BootstrapClassLoader > ExtClassLoader > AppClassLoader

它们并不是继承关系,只是一种委托关系。
当需要加载一个类时,AppClassLoader委托ExtClassLoader,ExtClassLoader委托BootstrapClassLoader。当被委托的加载器无法加载时,才由自己加载。