首页 > 代码库 > JVM中classloader双亲委派

JVM中classloader双亲委派

public class Test {	public static void main(String[] args) {		// TODO Auto-generated method stub		ClassLoader cl = Test.class.getClassLoader();		while(cl!=null) {			System.out.println(cl.getClass().getName());			cl = cl.getParent();		}		System.out.println(cl);	}}

以上这段程序运行的结果是:

sun.misc.Launcher$AppClassLoader   -->表示Test类的类加载器是AppClassLoader
sun.misc.Launcher$ExtClassLoader     -->表示AppClassLoader的类加载器是ExtClassLoader
null                                 -->表示ExtClassLoader的类加载器是BootstrapClassLoader

classloader的体系结构如下
bootstrap classloader(java核心类) native  是由另外一种语言实现的本地方法
       |
ext classloader(java 扩展类)
       |
classpath appclassloader(应用路径下)
       |
uri classloader(uri路径)


所以一般情况下,在classpath下的class都会通过appclassloader去加载