类加载器相关内容
来源:互联网 发布:动漫网络黑名单 编辑:程序博客网 时间:2024/06/06 07:26
前面叙述的类加载过程中大部分都是虚拟机实现的,可供用户介入的部分很少,除了初始化是由程序员定义外,虚拟机设计团队还把“如何根据名称找到类的字节码文件”这一权限开放给用户,对类加载有特殊需求的用户就可以继承ClassLoader来实现自定义的加载方式。
1. 类相等的判定
虚拟机环境中判断两个类相等,不仅仅要求两个类的全限定名相同,而且要求两者都是由同一类加载器加载的。
2. 加载器等级和双亲委派模型
类加载器等级见下图:
基本上,如果没有定义自己的类加载器,除了java.ext.dirs目录下的类有扩展类加载器完成,其他的应用程序中的类都由应用程序类加载器完成。
双亲委派模型:
关于这个名称我当初误会了好久,我觉得上级委托可能更清楚些,核心思想就是类加载首先委托上级来完成,依次递归,只有当上级无法加载,才由自己来加载。
按照上面的逻辑,所有的类最终都会委托到启动类加载器加载,只不过每个级别的类加载器加载的范围(目录)不同,所以最终大部分归结到Application ClassLoader加载器来完成。
双亲委派模型的对于java程序的稳定运行很重要,例如java.lang.Object卫浴rt.jar包,位于lib目录下,双亲委派模式保证无论哪个类加载器加载,最终都会交由启动类来加载Object,所以各个环境的Object都是同一个类。
- 类加载器相关内容
- IOS学习 nib加载相关内容(1)
- StringBuffer类及相关内容
- 相关内容
- Struts2之拦截器相关内容
- MapObjects2中加载瓦片地图的相关内容(C#)
- VC中加载套接字库的函数相关内容
- struts2拦截器获取请求相关内容
- Filter拦截器获取请求相关内容
- DirectX学习1:整理CustomVertex类相关内容
- Codeigniter使用淘宝IP地址库获取用户位置,并加载相关内容
- 加载、类加载、类加载器
- CXF相关内容
- HTTPS 相关内容
- LWUIT相关内容
- mysql相关内容
- ORACLE相关内容
- 傅里叶相关内容
- 在Ubuntu下获取Android4.0源代码并编译
- 常用端口及其服务
- 一、const_cast
- rbtree 设计
- 分别使用innerHTML和DOM在网页中动态生成表格的三种不同方法。
- 类加载器相关内容
- 收费系统数据库设计总结
- Nginx配置文件详细说明
- C#程序如何实现设置系统WIFI共享
- Mysql的架构
- linux下jni编程指南之——HelloWorld
- About Constructor
- M斐波那契数列 hdu 4549
- HDU 4565 So Easy!