浅谈JVM的双亲委派机制

双亲委派机制的含义

JAVA的类加载器分类
一共有四种:
启动类加载器 扩展类加载器 应用程序加载器 自定义加载器
定义
JVM通过双亲委派机制对类进行加载。双亲委派机制指一个类在收到类加载请求后不会尝试自己加载这个类,而是把该类加载请求向上委派给其父类去完成,其父类在接收到该类加载请求后又会将其委派给自己的父类,以此类推,这样所有的类加载请求都被向上委派到启动类加载器中。若父类加载器在接收到类加载请求后发现自己也无法加载该类(通常原因是该类的 Class文件在父类的类加载路径中不存在),则父类会将该信息反馈给子类并向下委派子类加载器加载该类,直到该类被成功加载,若找不到该类,则JVM会抛出 Classnotfoud异常。

双亲委派机制的流程图

浅谈JVM的双亲委派机制_第1张图片

作用

双亲委派机制的核心就是保障类的唯一性和安全性.例如加载
java.lang.Object 类时,无论是哪个类加载器加载这个类,最终都将类加载请求委托给启动类加载器加载,这样就保证了唯一性.如果有同名的二个类,则该类无法加载,JVM也无法完成类的加载,这就是另外一个作用保证了安全性.

你可能感兴趣的:(java)