类加载机制

过程

加载、验证、准备、解析、初始化、使用、卸载

简单理解:

  1. 加载就是把类信息加载到内存

  2. 验证就是验证类的安全性,完整性。

  3. 准备就是对类变量做初始化(赋初始值,如0)

  4. 解析,这块没看懂,将常量池符号引用替换为直接在内存中引用

  5. 初始化,先初始化父类,再初始化子类,先初始化静态块,再初始化普通块,再构造函数

双亲委派

类在加载器接到加载类请求时,先将加载任务给父加载器,逐层递归,如果父加载器能完成加载,就给父加载器加载,如果不能,就自己加载。

好处:公共的类只加载一份。保证系统的稳定。比如Object类,如果在自己代码里面也定义了一个java.lang.Object,没有双亲委派机制,那这个类将可能导致你的程序无法运行。