Java双亲委托

类加载器的种类

1.启动类加载器(bootstrapClassLoader)
这个类加载器不是由java代码实现的
这个类加载器专门加载java系统中最重要最基本的类

2.扩展类加载器(ExtClassLoader)
这个类加载器是由java代码实现的
这个类加载器专门加载系统中额外添加的一些功能的jar包

3.应用类加载器(AppClassLoader)
这个类加载器是java代码实现的
这个类加载器专门加载系统中用户自己编写的项目代码

4.自定义类加载器

类加载的过程

启动类加载器,扩展类加载器和应用类加载器这三个类加载器共同协作,使用【双亲委托】的方式,把一个class文件中的类加载到内存

向上委托,向下加载

例如:要运行Hello.class文件中的类,首先加载任务就交给了AppClassLoader,然后AppClassLoader又这个任务委托给自己的父加载器,也就是ExtClassLoader,然后ExtClassLoader也会把这个任务继续委托给自己的父加载器,也就是bootstrapClassLoader,然后bootstrapClassLoader就尝试去加载Hello这个类,但是在指定路径下并没有找到,然后这个任务就又交给了ExtClassLoader,这时候ExtClassLoader就尝试加载Hello这个类,但是在指定路径中也没找到,然后这个任务又交给了AppClassLoader,最后AppClassLoader从classpath中指定的路径里面找到并加载了这个Hello类,完成类加载的过程

作用:双亲委托可以避免恶意和系统中同包同名的类被加载到内存,替换系统中原有的基础类,而导致系统崩溃的情况发生

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值