双亲委派机制与沙箱安全

双亲委派机制

在这里插入图片描述

双亲委派机制介绍:

程序加载某个类,查找过程(从父级开始找):

  • 现在bootstrap ClassLoaer下,找不到就会去 Extension ClassLoaer 下找
  • 如果在Extension ClassLoaer 找不到就会去App ClassLoaer找
  • 如果在App ClassLoaer找不到,一般就会抛出class not found 异常

解释:
当一个类收到了类的加载请求,他首先不会自己去加载这个类,而是把这个请求委派给父亲去完成,每一层的类加载器都是如此,只有当父类加载器反馈自己无法完成这个请求的时候(在他的加载的路径下没有找到所需要加载的class),子类加载器才会尝试自己去加载。

双亲委派模型的优势

比如加载位于rt.jar包中的类java.lang.Object,不管是哪个加载器加载这个类,最终都会委托给顶层的启动类(BootStrap Class Loader)进行加载这样就保证了不同的加载的类加载器最终得到的都是同样的一个Object 对象

沙箱安全(双亲委派机制的安全性和健壮性

沙箱安全:程序员写的代码不会污染Java出厂自带的源代码,这样就可以保证大家用的都是同一个代码(先到先得的原则)
例如:程序员自己建立了一个lang文件夹

package java.lang;


public class String{
	//会报出在类java.lang.String中找不到main方法
	public static void main(String[] args){
		System.out.println("1231232");
	}
}

解释:
因为有双亲委派机制,也就是会在Java的BootStrap Class Loader 加载的jar包中寻找,在该jar包下就会找到一个java.lang.String 的类,此时就会停止在子级中寻找(先到先得原则),但是在该类中并未找到main方法,所以运行时会报错。

这样就保证了Java的出厂源码不会受到开发人员编写的污染(沙箱安全机制)

加载完成之后,会由Execution Engine执行引擎负责解释命令,提交操作系统执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值