Java中的类加载器

58 阅读1分钟

Java中的类加载器(ClassLoader)分为三种:

  1. 启动类加载器(Bootstrap ClassLoader): 它是虚拟机的一部分,主要负责加载Java的核心类库,如rt.jar,以及其他平台无关的类。在Java中,它用C++实现,无法通过Java代码直接获取。
  2. 扩展类加载器(Extension ClassLoader): 也称为系统类加载器,负责加载Java的扩展类库,一般对应jre/lib/ext目录下的jar包。它是由Java实现的,并继承自java.lang.ClassLoader类。
  3. 应用程序类加载器(Application ClassLoader): 也称为系统类加载器,是最常用的加载器。它负责加载应用程序classpath下的类。它是由Java实现的,并继承自java.lang.ClassLoader类。

这三个类加载器之间存在父子关系,启动类加载器没有父加载器,而扩展类加载器和应用程序类加载器的父加载器都是启动类加载器。这种层次关系构成了ClassLoader的树状结构。

类加载器的主要作用是将类的字节码加载到JVM中,使得程序能够执行。不同的类加载器负责不同位置的类的加载。