ClassLoader的双亲委派模型

JDK1.2之前,是没有双亲委派模型的,当时的开发者要自定义ClassLoader,都是继承ClassLoader并覆盖loadClass方法。JDK1.2之后,为了向前兼容,将双亲委派的逻辑放在了loadClass方法中,当父类加载不了时,会调用findClass来让子类加载,所以子类应该将加载类代码放在findClass方法中。

双亲委派只是JDK建议的模型,并不是强制的,开发者完全可以不遵守双亲委派。

在双亲委派模型中,越基础的类由越高层的父类加载,但基础类也可能要调用或者说是触发应用类的加载,这时候就需要破坏双亲委派模型了,通过线程类加载器来实现,应用将自己的类加载器设置为线程类加载器,然后基础类用线程类加载器来加载应用类。

 

引入双亲委派模型,是为了安全:https://www.artima.com/insidejvm/ed2/linkmod3.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值