双亲委派机制的简介说明

java问题王 Java每日一问 发布时间:2021-10-20 09:18:37 阅读数:12255 1
下文讲述java中的双亲委派机制,如下所示:
注意事项:
    双亲委派模式中的父子关系并非通常所说的类继承关系

双亲委派机制的原理

双亲委派机制的工作原理:当一个类加载器收到了类加载请求
此时并不会自己先去加载,而是把这个请求委托给父类的加载器去执行
如果父类加载器还存在其父类加载器
则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器
如果此时父类加载器可完成类加载任务,就成功返回
如果父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式
 每个子类都很懒,每次有活就丢给父类去干
 直到所有的父类说这件事我也干不了时
 此时子类才会自己想办法去完成。

双亲委派机制优点

通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时
就没有必要子ClassLoader再加载一次
其次是考虑到安全因素,java核心api中定义类型不会被随意替换
	例:通过网络传递一个名为java.lang.Integer的类,通过双亲委托模式传递到启动类加载器,
	 而启动类加载器在核心Java API发现这个名字的类,发现该类已被加载,
	 并不会重新加载网络传递的过来的java.lang.Integer,
	 而直接返回已加载过的Integer.class,这样便可以防止核心API库被随意篡改
	 
  综上所述:
        我们可以得到双亲委派机制的优点,如下所示:
        1.可以防止类的重复加载
        2.可以防止Java核心api类库被篡改
    

双亲委派机制的应用场景

  如:Tomcat容器
每个WebApp有自己的ClassLoader
加载每个WebApp的ClassPath路径上的类
一旦遇到Tomcat自带的Jar包就委托给CommonClassLoader加载
同包的隔离。另外成熟的开源框架,都有自己的ClassLoader
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202110/1503.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者