类加载器的层级结构,如图:
类加载器的委托机制,如图:
代码实例:
/**
*
*/
package com.franky.classloader;
/**
* @描述 类加载器的使用实例
* @作者 franky
* @日期 2015-1-1 下午5:34:37
*
*/
public class ClassLoaderTest {
public static void main(String[] args) {
ClassLoader classLoader = ClassLoaderTest.class.getClassLoader();
//打印:sun.misc.Launcher$AppClassLoader@dda25b
//类加载器的类型为 AppClassLoader
System.out.println(classLoader);
//System的类加载器为BootStrap顶级类加载器,非JAVA类
ClassLoader classLoader2 = System.class.getClassLoader();
//输出null
System.out.println(classLoader2);
//看看三个类加载器的结构,继续循环打印
//输出sun.misc.Launcher$AppClassLoader@dda25b
//sun.misc.Launcher$ExtClassLoader@ce2187
//null(BootStrap顶级类加载器,非JAVA类,打印Null)
System.out.println(classLoader);
while(classLoader != null){
classLoader = classLoader.getParent();
System.out.println(classLoader);
}
}
}