java双亲委派

15 篇文章 0 订阅

双亲委派(Parent Delegation)是Java类加载机制中的一种设计模式,用于确保类的加载安全性和一致性。在双亲委派模式下,一个类加载器在加载类时首先委托给其父类加载器,只有在父类加载器无法加载该类时,才由子类加载器尝试加载。

这种机制有助于保证类的加载过程中不会出现重复加载同一个类的情况,从而避免了类的冲突和混乱。具体来说,当一个类加载器收到加载请求时,它会按照以下步骤进行:

  1. 检查父加载器:类加载器首先检查其父加载器是否能够加载该类。如果父加载器能够加载,则直接委托给父加载器加载,加载完成后返回。
  2. 尝试加载:如果父加载器无法加载该类,则类加载器尝试自己加载该类。
  3. 加载失败:如果类加载器无法加载该类,它会抛出ClassNotFoundException异常。

通过双亲委派模式,Java类加载器形成了一种层次结构,通常包括以下几种加载器:

  • Bootstrap类加载器:也称为引导类加载器,负责加载Java核心类库,通常是由JVM实现提供的,无法直接获取。
  • Extension类加载器:负责加载JRE扩展目录中的类库,通常对应于JDK中的jre/lib/ext目录。
  • Application类加载器:也称为系统类加载器,负责加载应用程序类路径(classpath)上的类,通常由ClassLoader.getSystemClassLoader()方法获取。

在Java应用程序中,通常不需要自定义类加载器,因为默认的双亲委派模式已经能够满足大多数需求。但在某些特殊情况下,比如实现热部署、类隔离等功能时,可能需要自定义类加载器来实现特定的加载策略。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值