JVM类加载机制
JVM类加载过程
- 加载
- 验证
- 准备
- 解析
- 初始化
- 使用
- 卸载
JVM类加载器-双亲委派模型
类加载模型图
双亲委派模型工作过程
如果一个类加载器收到了类加载请求,它不会自己直接加载,而是会委派自己的父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都会传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载请求时(它的搜索范围中没有找到反需的类),子加载器才会尝试自己去加载。
双亲委派模型的优点
保证稳定性和安全性,比如java.lang.Object类只会由启动类加载器进行加载,如果用户自定义了一个java.lang.Object类是不会被加载的。这样保证了Object类的全局唯一性,也不会被别有用心的人替换。
参考文献
- 《深入理解JAVA虚拟机》- 周志明
JVM类加载机制
http://yoursite.com/2017/04/11/jvm_class_load/