1、类的加载
1.加载
2.连接
2.1 验证: 验证字节码文件的正确性。
2.2 准备: 给类的静态变量分配内存,并赋予默认值。
2.3 解析: 类装载器装入类所引用的其它所有类。
3.初始化
为类的静态变量赋予正确的初始值,上述的准备阶段为静态变量赋予的是虚拟机默认的初始值,此处赋予的才是程序编写者为变量分配的真正的初始值,执行静态代码块。
4.使用
5.卸载
2、类加载器的种类
1. 启动类加载器(Bootstrap ClassLoader)
负责加载JRE的核心类库,如JRE目标下的rt.jar,charsets.jar等。
2. 扩展类加载器(Extension ClassLoader)
3. 系统类加载器(Application ClassLoader)
4. 用户自定义加载器(User ClassLoader)
3、类加载机制
全盘负责委托机制
当A类中引用B类,那么除非特别指定B类的类加载器,否则就直接使用加载A类的类加载器加载B类。
双亲委派机制
指先委托父类加载器寻找目标类,在找不到的情况下再在自己的路径中查找并载入目标类。
