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