WEB开发网
开发学院WEB开发Jsp Java的类装载器和命名空间 阅读

Java的类装载器和命名空间

 2008-01-05 08:23:47 来源:WEB开发网   
核心提示:摘要 java的类装载器是Java动态性的核心,本文将向大家简要介绍Java的类装载器,Java的类装载器和命名空间,及相关的parent delegation模型,命名空间,在编程者不非凡指定装载器的情况下默认装载用户类,系统类装载器可以通过ClassLoader.getSystemClassLoader() 方法
摘要
                                          
   java的类装载器是Java动态性的核心,本文将向大家简要介绍Java的类装载器,及相关的parent delegation模型,命名空间,运行时包等概念,同时讨论一些在学习中轻易混淆的问题。 

类装载器的功能及分类

  顾名思义,类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动类装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 

  bootstrap是JVM自带的类装载器,用来装载核心类库,如java.lang.*等。如java.lang.Object是由bootstrap装载的。 

  Java提供了抽象类ClassLoader,所有用户自定义类装载器都实例化自ClassLoader的子类。 System Class Loader是一个非凡的用户自定义类装载器,由JVM的实现者提供,在编程者不非凡指定装载器的情况下默认装载用户类。系统类装载器可以通过ClassLoader.getSystemClassLoader() 方法得到。

例1,测试你所使用的JVM的ClassLoader

/*LoaderSample1.java*/
public class LoaderSample1 {
  public static void main(String[] args) {
    Class c;
    ClassLoader cl;
    cl = ClassLoader.getSystemClassLoader();
    System.out.PRintln(cl);
    while (cl != null) {
      cl = cl.getParent();
      System.out.println(cl);
    }
    try {
      c = Class.forName("java.lang.Object");
      cl = c.getClassLoader();
      System.out.println("java.lang.Object's loader is " + cl);
      c = Class.forName("LoaderSample1");
      cl = c.getClassLoader();
      System.out.println("LoaderSample1's loader is " + cl);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Tags:Java 装载 命名

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接