没有合适的资源?快使用搜索试试~ 我知道了~
首页java的ClassLoader类加载器机制
java的ClassLoader类加载器机制
4星 · 超过85%的资源 需积分: 10 32 下载量 163 浏览量
更新于2023-03-03
评论
收藏 44KB DOC 举报
jvm运行的过程中,需要载入类,而类的加载需要类加载器,本文章提供了java的类加载器的工作原理。可以使读者更加理解jvm的运行机制。
资源详情
资源评论
资源推荐
多谢支持!
当 ( 虚拟机)启动时,会形成由三个类加载器组成的初始类加载器层次结构:
-引导(也称为原始)类加载器,它负责加载 的核心类。在 的
中,在执行 的命令中使用 选项或使用 选项指定 系统属
性值可以指定附加的类。这个加载器的是非常特殊的,它实际上不是 !" 的子类,
而是由 自身实现的。大家可以通过执行以下代码来获得 加载了那些核心类
库:
#$"%&'" (!)*+ #$"*+,
-*'.,/ ,00+1
*2-*++,
3
在我的计算机上的结果为:
文件45!4567898:.85555
文件45!4567898:.85555
文件45!4567898:.855556;8
文件45!4567898:.85555<6..
文件45!4567898:.85555
文件45!4567898:.85555
文件45!4567898:.8555
文件45!4567898:.85558=
文件45!4567898:.8555
文件45!4567898:.8555
文件45!4567898:.8555
文件45!4567898:.8555
文件45!4567898:.855
这时大家知道了为什么我们不需要在系统属性 !">)>?@ 中指定这些类库了吧,因为 在启动的时
候就自动加载它们了。
-扩展类加载器,它负责加载 $2 的扩展目录(>>:@A2555 或者
由 系统属性指定的)中 >$ 的类包。这为引入除 核心类以外的新功能提供了一个标
准机制。因为默认的扩展目录对所有从同一个 $2 中启动的 都是通用的,所以放入这个目录的 >$
类包对所有的 和 都是可见的。在这个实例上调用方法 )*+总是返回空
值 ,因为引导加载器 不是一个真正的 !" 实例。所以当大家执行
以下代码时:
* )*BB++,
!"!'!" !"*+ )*+,
*B - 4
B0! )*++,
结果为:
!4C67898:.8CCC
-4
是 的 ,而 是
的 ,但它不是一个实际的 ,所以为 。
-系统(也称为应用)类加载器,它负责在 被启动时,加载来自在命令
中的 或者 系统属性或者 !">)>?@ 操作系统属性所指定的 >$ 类包和类
路径。总能通过静态方法 !" !"*+找到该类加载器。如果没有特别指定,
则用户自定义的任何类加载器都将该类加载器作为它的父加载器。执行以下代码即可获得:
* )*BB++,
输出结果则为用户在系统属性里面设置的 !">)>?@。
加载类用的是全盘负责委托机制。所谓全盘负责,即是当一个 加载一个 !
的时候,这个 ! 所依赖的和引用的所有 ! 也由这个 负责载入,除非是显式的使用
另外一个 载入;委托机制则是先让 (父)类加载器 *而不是 ,它与
类不是继承关系+寻找,只有在 找不到的时候才从自己的类路径中去寻找。此外类加
载还采用了 机制,也就是如果 中保存了这个 ! 就直接返回它,如果没有才从文件中读
取和转换成 !,并存入 ,这就是为什么我们修改了 ! 但是必须重新启动 才能生效的
原因。
每个 !" 加载 ! 的过程是:
8检测此 ! 是否载入过(即在 中是否有此 !),如果有到 =D如果没有到 6
6如果 不存在(没有 ,那 一定是 了),到
9
;请求 载入,如果成功到 =,不成功到 E
9请求 从 中载入,如果成功到 =
E寻找 ! 文件(从与此 相关的类路径中寻找)。如果找不到则到 F
G从文件中载入 !,到 =
F抛出 !HI2
=返回 !
其中 EG 步我们 可以 通过覆盖 !" 的 J! 方 法来实现 自 己 的载入策 略 。 甚至覆盖
! 方法来实现自己的载入过程。
类加载器的顺序是:
先是 ,然后是 ,最后才是 。大家
会发现加载的 ! 越是重要的越在靠前面。这样做的原因是出于安全性的考虑,试想如果
剩余10页未读,继续阅读
千年一笑
- 粉丝: 2
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1