JVM类加载机制

JVM类加载过程

  1. 加载
  2. 验证
  3. 准备
  4. 解析
  5. 初始化
  6. 使用
  7. 卸载

JVM类加载器-双亲委派模型

类加载模型图

双亲委派模型工作过程

如果一个类加载器收到了类加载请求,它不会自己直接加载,而是会委派自己的父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都会传送到顶层的启动类加载器中,只有当父类加载器反馈自己无法完成这个加载请求时(它的搜索范围中没有找到反需的类),子加载器才会尝试自己去加载。

双亲委派模型的优点

保证稳定性和安全性,比如java.lang.Object类只会由启动类加载器进行加载,如果用户自定义了一个java.lang.Object类是不会被加载的。这样保证了Object类的全局唯一性,也不会被别有用心的人替换。


参考文献

  • 《深入理解JAVA虚拟机》- 周志明

JVM类加载机制
http://yoursite.com/2017/04/11/jvm_class_load/
作者
Ma Zhichao
发布于
2017年4月11日
许可协议