the5fire的技术博客

关注python、vim、linux、web开发和互联网--life is short, we need python.


java类加载器加载机制

作者:the5fire | 标签:     | 发布:2011-01-06 10:13 p.m. | 阅读量: 4420, 4398

  Java的安全模型是的Java成为适于网络环境的技术——《深入Java虚拟机》

  在安全方面Java的内置安全模型中使用了一种成为“沙箱”的组件,来保证Java程序对用户的安全,至于什么是“沙箱”大家Google之。

  在沙箱组件中包括类装载器结构,类加载器体系结构也是java沙箱的第一道防线,因为程序都是通过类加载器才能够加载到JVM中的。

  类加载器有三方面的作用:
1. 它防止了恶意代码去干涉善意代码
2. 它守护了被信任的类库边界
3. 它将代码归入某类(成为保护域),该类确定了代码可以进行哪些操作。


  其中一个大家所熟悉的词就是“双亲委派机制”,所谓“双亲委派机制”,就是某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。用一个图形表示就是:
classloader

 引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自java.lang.ClassLoader。
 扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
 系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader() 来获取它。


  关于java类加载机制推荐大家看这篇文章《深入探讨 Java 类加载器》,IBM文档,写的很详细。

----EOF-----

扫码关注,或者搜索微信公众号:码农悟凡


其他分类: