类装载器的体系结构

阅读“类装载器的体系结构”这一节时,
有一些的要点:
1.类装载器有两种: 启动类装载器和用户自定义的类的装载器。启动类装载器是Java虚拟机实现的一部分。启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API的类。启动类装载器也被称为原始类装载、系统类装载器或者默认装载器。
Java应用程序能够在运行时安装用户定义的类装载器,这种类装载器能够使用自定义的方式来装载类。

2.每个类被装载的时候,Java虚拟机都监视这个类,看它到底是被启动类装载器还是被用户自定义类装载器装载。当被装载的类引用了另外一个类时,虚拟机就会使用装载第一个类的类装载器 -->去装载 被引用的类。即比如,虚拟机会使用一个特定类装载器装载了Volcano类,它也会使用这个类装载器-->装载Volcano类中所引用到的所有类。

3.由于Java虚拟机采用2所述的这种方式进行类的装载,所以被装载类 默认情况下只能看到被同一个类装载器装载的别的类。 通过这种方法,Java的体系结构允许在一个Java应用程序中建立多个命名空间,运行时的java程序中的每一个类装载器都有它自己的命名空间。

4. 一个Java应用程序能够从[b]同一个类[/b] 或者 [b]多个类[/b] 中 实例化[b] 多个[/b]用户定义的 [b]类装载器[/b]。(这句话好好理解下子)而,被不同类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示允许这样做。通过这种方法,就能够阻止恶意代码获取访问和破坏善意代码的权限。

类装载器的体系结构是Java虚拟机在安全性和网络移动性上发挥重要作用的一个方面。

Web浏览器是一个动态扩展的例子,web浏览器使用用户自定义的类装载器从网络上下载用于Java applet的class文件。只有当浏览器遇到有Java applet 的页面的时候,才决定是否需要下载class 文件。而不同来源的Java applet的class文件放置在不同的命名空间中,恶意的Java applet代码不会直接影响别的代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值