Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制相关的知识,希望对你有一定的参考价值。

 

1.1. 类加载器的层次

 

类加载器包括三种:

Bootstrap ClassLoader:用于加载JRElib目录下的jar文件中的class

ExtClassLoader:用于加载JRElib/ext目录下的jar文件中的class

AppClassLoader:用于加载classpath下的class

在加载一个class时,通常应该先委托给parent类加载器来加载,parent类加载器找不到这个类时,才自行加载。实际优先次序从高到低排列是BootStrap ClassLoaderExtClassLoaderAppClassLoader

 

public class ClassLoaderTest {

public static void main(String[] args) {

 

 

ClassLoader  loader = ClassLoaderTest.class.getClassLoader();

while(loader!=null){

System.out.println(loader.getClass().getName());

loader = loader.getParent();

}

System.out.println(loader);

}

}

 

 

运行结果如下:

sun.misc.Launcher$AppClassLoader

sun.misc.Launcher$ExtClassLoader

null

 

输出的三个类加载器实际上依次是AppClassLoaderExtClassLoaderBootstrap ClassLoader.

 

以上是关于Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制的主要内容,如果未能解决你的问题,请参考以下文章

java类加载器的层次结构,自定义类加载器的步骤

Java基础之类加载器

JVM进阶之类加载器详解

JVM进阶之类加载器详解

深入JAVA虚拟机之类加载器

JVM之类加载classLoader