双亲委派作用

无论是在学习 Java 过程中还是在背涨薪秘诀时都会提到双亲委派,这里面说的最多的就是类加载机制,但却很少谈及其作用,经多方面参考,总结一下。

关于什么是双亲委派,不知道的小伙伴自行上网去查。

Java 程序启动时,JVM 会创建三个主要的 ClassLoader,它们分别是:

  • 启动类加载器(Bootstrap ClassLoader): 负责加载 Java 核心类库,如 java.lang 包下的类,它是 JVM 内置的,通常由 C++ 实现,不是一个普通的 Java 类。
  • 扩展类加载器(Extension ClassLoader): 负责加载 Java 的扩展库,如 java.util 包下的类。
  • 应用程序类加载器(Application ClassLoader): 也称为系统类加载器,负责加载用户自定义的类和应用程序依赖的类。

JVM 通过双亲委派模型进行类的加载,当然我们也可以通过继承 java.lang.ClassLoader 实现自定义的类加载器。

双亲委派的作用

双亲委派是 Java ClassLoader 的一种加载机制,它的作用是保证 Java 类的加载安全性和避免类的重复加载,同时实现类加载的层级结构。

其作用如下:

  • 保证类的加载安全性: 在加载类时,首先由启动类加载器尝试加载,如果找不到对应的类,再由扩展类加载器尝试加载,如果仍然找不到,则由应用程序类加载器尝试加载。这种从上至下的层级结构保证了核心类库优先被加载,从而保证 Java 类的加载安全性。
  • 避免类的重复加载: 双亲委派机制避免了同一个类被重复加载到不同的 ClassLoader 中。在类加载过程中,如果一个类已经被父 ClassLoader 加载过,子 ClassLoader 就不再尝试重新加载,而直接使用父加载器加载的类。
  • 实现类加载的层级结构: 双亲委派机制建立了类加载的层级结构,每个 ClassLoader 都有一个父加载器,除了启动类加载器,其他的 ClassLoader 都有自己的父加载器。这样形成了一个父子关系的加载链,父加载器可以加载子加载器加载不到的类。

双亲委派机制保证了类加载的安全性和一致性,并避免了类的冲突和重复加载问题。它是 Java ClassLoader 的一个重要特性,为 Java 类的加载提供了一种高效而稳定的机制。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旷野历程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值