双亲委派机制

Q:一个类是怎样被加载的?双亲模型了解么?

A:加载、连接(验证、准备、解析)、初始化,双亲委派模型就是Application classloader有一个父类Extension classloader有一个父类Bootstrap classloader,但是这个父类并不是我们java中的extends而是一种模型概念,每个加载器都负责加载指定目录下的jar包,当加载器收到我们加载请求的时候,App加载器会把加载请求传给上级Ext,Ext收到也一样会穿个Boot,如果要加载的目录不是boot的范围就不会加载,会把请求传个下级Ext,Ext一样看是否属于自己加载范围,举个例子就是我们写个String类,里面写一个main方法,启动一定会报错的就是找不到该方法,为什么,当我们写的String类被加载的时候犹豫双亲委派模型,一直请求到boot加载器,但是boot加载器负责的范围包括Java自带的String类,所以String类就已经被加载了,但是Java的这个String类并没有main方法,所以报错找不到方法,这总设计机制也被称为沙箱保护机制;

你可能感兴趣的:(双亲委派机制)