类加载器

类加载器

  1. 类与类加载器:对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在java虚拟机中的唯一性。

  2. 双亲委派模型

    1. 加载器分类

      • 启动类加载器(Bootstrap Classloader),负责加载<JAVA_HOME>\lib目录下的并且是虚拟机识别的文件
      • 扩展类加载器(Extension Classloader),负责加载<JAVA_HOME>\lib\ext目录中的文件
      • 应用程序类加载器(Application Classloader),系统类加载器,负责加载classPath上所指定的类库
    2. 父类委派机制

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      if (this.ucp.knownToNotExist(var1)) {
      Class var5 = this.findLoadedClass(var1);
      if (var5 != null) {
      if (var2) {
      this.resolveClass(var5);
      }

      return var5;
      } else {
      throw new ClassNotFoundException(var1);
      }
      } else {
      return super.loadClass(var1, var2);
      }