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