java 双亲委派模型
来源:互联网 发布:windows已阻止此软件 编辑:程序博客网 时间:2024/05/01 00:35
双亲委派模型要求除了顶层的类加载器外,其余的类加载器都应当有自己的父类加载器。这里的类加载器之间的父子关系一般不会以继承的关系来实现,而都是以组合的关系来复用父加载器的代码。
双亲委派模型的工作过程是:如果一个类加载器 收到了类加载器的请求,它首先不会自己去尝试加载这个类,而是把这个类委托给父类加载器去完成,每个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围没有找到所需的类)时,类加载器才会尝试自己去加载。
双亲委派模型的实现:先检查是否已经被加载过,若没有加载则调用父类加载器的loadClass()方法,若父加载器为空则默认使用启动类加载器作为父加载器。如果父类加载失败,抛出ClassNotFoundException异常后,在调用自己的findClass()方法进行加载。
protected synchronized Class<?> loadClass(String name,boolean resolve) throws ClassNotFoundException{//首先检查请求的类是否被加载过了Class c=findLoadedClass(name);if(c==null){try{if(parent!=null){c=parent.loadClass(name,false);}else{c=findBootstrapClassOrNull(name);}}catch(ClassNotFoundException e){//如果父类加载器抛出classNotFoundException//说明父类加载器无法完成加载请求}if(c==null){//在父类加载器无法加载的时候//在调用本身的findClass方法来进行类加载c=findClass(name);}}if(resolve){resolveClass(c);}return c;}
阅读全文
0 0
- java 双亲委派模型
- 深入理解java虚拟机---双亲委派模型
- Java类加载器双亲委派模型
- java类加载器,双亲委派模型
- Java类加载器--双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- 双亲委派模型
- JVM6--双亲委派模型
- Java双亲委派机制
- 类加载双亲委派模型
- 双亲委派模型的理解
- 【jvm】---classLoader 双亲委派模型
- 我与Bloom filter
- JavaScript高级程序设计-学习笔记3
- 2017年7月31日21:28:10
- Android蓝牙实现设备间数据传输
- JavaScript中的创建对象方式
- java 双亲委派模型
- (源码阅读)Resources资源加载流程
- 事件驱动,线程池,非阻塞,异常处理(node大神的有时间常看)
- 页面元素坐标和偏移(clientX/pageX/screenX/layerX/offsetWidth/scrollWidth/clientWidth等)相关整理
- yii 表单小物件使用注意事项
- (四)gradle构建spring-boot项目
- 笔记:requires the provider be exported, or grantUriPermission()
- Java中BigDecimal的使用
- [BZOJ]3438: 小M的作物 最小割