黑马程序员技术交流社区

标题: 类加载器...疑问 [打印本页]

作者: 328078121    时间: 2013-9-2 20:48
标题: 类加载器...疑问
本帖最后由 328078121 于 2013-9-3 00:26 编辑

关于类加载器
package com.itheima;
public class ClassLoaderTest {
        public static void main(String[] args){
                System.out.println(
                ClassLoaderTest.class.getClassLoader().getClass().getName() //位置1
                +"\n"+System.class.getClassLoader());
               
                ClassLoader loader = ClassLoaderTest.class.getClassLoader();
                while(loader != null) {
                        System.out.println(loader.getClass().getName());//位置2
                        loader = loader.getParent();
                }
                System.out.println(loader);
        }
                }
复制代码
输出结果是,
sun.misc.Launcher$AppClassLoader
null
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader
null
我的疑问是在位置1和位置2,为何ClassLoaderTest.class.getClassLoader()最后的输出结果分别为sun.misc.Launcher$AppClassLoadersun.misc.Launcher$AppClassLoadersun.misc.Launcher$ExtClassLoader?为何多出一个sun.misc.Launcher$ExtClassLoader

作者: 李锡碧    时间: 2013-9-2 23:58
第一次循环后loader = loader.getParent();执行后,loder不为null,又执行一次,所以多了个吧。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2