查找和导入class文件。java
验证 检验载入的class文件的正确性,完整性。api
准备 给类的静态变量分配存储空间,会赋对象类型的默认值。数组
解析 将class常量池中的符号引用转换成直接引用。安全
符号引用和直接引用的区别:指针
对类的静态变量,代码块执行初始化操做,静态变量赋值顺序根据代码定义的顺序执行。对象
注意:blog
静态常量在编译阶段把初始值存入class文件的常量池中,在类的准备阶段,将值赋给静态变量。继承
1.类加载器包括:BootstrapClassLoader、ExtensionClassLoader、 ApplicationClassLoader、自定义的类加载器。 2.双亲委派模型:若是一个类加载器收到了加载类的请求,首先交给父类加载器进行加载,若是父类加载器加载失败,当前类才会本身加载类。 3.双亲委派的做用:避免重复加载,父类已经加载子类不用加载,防止用户自定义加载器加载java核心的api,带来安全隐患。 4.一个类是否被加载是经过全类名和命名空间肯定的,命名空间是加载类的加载器名。内存
继承classloader类,重写findClass方法。ssl