java 类加载器

来源:互联网 发布:c语言打开文件失败 编辑:程序博客网 时间:2024/06/05 00:25

1.在java se中 的java.*类将被加载到特定的跟类加载器中,并且不能被覆盖。这是一种安全的模式,

它阻止了恶意代码的执行,例如恶意代码可能会替换String类,或者重新定义Boolean.TRUE和Boolean.FALSE.

在根类加载器之后是扩展类加载器,它将加载JRE安装目录中的扩展 JAR.。最后,应用程序Class Loader将加载

应用程序中的其他类。这组成了类加载器的层次,根类加载器是所有类加载器的祖先。当低级别类加载器申请加载

一个类时,它总是首先将该任务委托给它的父类加载器。继续向上委托直至根类加载器确认成功。如果它的父类

没有找到该类,那么当前的类加载器将尝试从自己的 JAR文件目录中加载该类。这种类加载的方法被称为双亲优先

类加载委托模式。

2.而在java EE web应用程序服务器中,内个web应用程序都被分配了一个自由的相互隔离的类加载器。他们都继承

自公共的服务器类加载器。通过隔离不同的应用程序,他们不能访问互相的类。web应用程序类加载器通常会在自己

无法加载某个类时,请求它的父类加载器帮厨加载。通过这种方式,类加载器任务会在最后委托给父类加载器,而不

首先委托给他的父类,web应用程序中的类和库会被优先使用,而不是服务器提供的版本优先使用,这种加载模式被

称为:子女优先类加载委托模式。

0 0