深入理解JVM 第一章 之3

来源:互联网 发布:中国数据泄露防护市场 编辑:程序博客网 时间:2024/06/07 09:28
  1. 类装载器:“启动”类装载器(默认类装载器、原始类装载器、系统类装载器)和用户自定义的类装载器。
  2. “启动”类装载器:JVM的一部分。例如JVM在已有的OS上实现为C程序,那么它就是C程序的一部分,从本地装载类(包括Java API中的类)
  3. “用户自定义”类装载器:Java应用程序能够在运行的时候安装用户定义的类装载器。利用这种类装载器,用户可以在程序中指定装载类的方式(例如从网上下载字节码、从数据库中获取、动态生成等等)。用户自定义的类装载器能够用Java程序写,能过编译成 .class 文件,能够被类装载器装载(这里最基本的是“默认类装载器”),能够像其他对象一样被实例化。用户自定义的类加载器只是Java可执行代码中的一部分。通过使用这些类加载器,应用程序可以决定如何来加载类、使用哪些类加载器进行加载
  4. 当一个类被加载的时候,JVM会监视这个类是用”默认类加载器“加载的还是用“用户自定义类加载器“加载的。如果使用用户自定义类加载器加载,那么加载这个类中使用的类的时候还是使用这个类加载器。
  5. 用户自定义的类加载器可以在程序中定义和实例化,所以在同一个应用程序中可以创建多个或者多种类加载器。但是被不同的类加载器加载的类会放到不同的命名空间中,不同的命名空间中的类默认情况下是不能互相访问的,除非应用程序中显示这么做。
  6. 将不用的源文件装载的类分别装在不同的命名空间中,这样,就可以控制不同源文件之间代码的影响,特别能够阻止恶意代码获取访问和破坏善意代码的权限
0 0