双亲委派机制

双亲委派机制工作原理如果想真正理解,还需要明白类加载器的分类以及他们之间的相互关系。具体可以查看另一篇博客《类加载器的分类》

双亲委派机制工作原理

工作原理

java虚拟机对于class文件采用的是按需加载的方式,当需要使用该类时才会将他的class文件加载到内存生成class对象,而且加载某个class文件时,java虚拟机采用的是双亲委派机制,将请求交给父类处理,进行任务委派。具体委派机制如上图所示,将请求传到最顶端的引导类加载器,然后从上往下依次进行判断,一旦有符合的可以进行类的加载,则停止。

错误示范

上图为错误示范,自己单独新建一个java.lang的文件夹,自己新建一个String类,此时执行main方法时,由于双亲委派机制,所以进行类加载的时候此时会找到引导类加载器进行加载,此时根本轮不到自己定义的类加载器进行加载。由于引导类中没有main方法,所以报错,找不到main方法。同时String类中的静态方法无论别的程序是否调用都无法执行,归功于双亲委派机制。

例2

上图中引导类加载器加载核心的jar包,同时针对于第三方的jar包由引导类加载器反向委托给线程上下文加载器,而上下文加载器默认为系统类加载器,加载完成后由rt.jar核心类调用jdbc.jar类中实现核心类中的方法。

优势

双亲委派机制的优势有两点:
1. 避免类的重复加载
2. 保护程序安全,放置核心API被随意篡改
从引导类加载器开始进行判断,从上往下类进行唯一加载,从而避免重复加载,同时由于从安全程度较高的引导类加载器进行加载可以最大化减少自定义跟系统类重名的类的加载,防止API被篡改,保护程序的安全。

沙箱安全机制

沙箱安全机制
参考例1.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值