java.lang.String的ClassLoader名称为null

时间:2014-04-24 07:38:08

标签: java classloader

class Test {

}

public class NewClass {
    public static void main(String[] args) throws ClassNotFoundException {
        Test t = new Test();
        String s = new String("abc");
        Integer i = new Integer(1000);
        System.out.println(Class.forName("Test").getClassLoader());
        System.out.println(t.getClass().getClassLoader());
        System.out.println(NewClass.class.getClassLoader());
        System.out.println(java.lang.String.class.getClassLoader());
        System.out.println(java.lang.Integer.class.getClassLoader());
    }
}

输出:

sun.misc.Launcher$AppClassLoader@546b97fd
sun.misc.Launcher$AppClassLoader@546b97fd
sun.misc.Launcher$AppClassLoader@546b97fd
null
null

在上面的代码中,为什么String和Integer的类加载器为null?

1 个答案:

答案 0 :(得分:6)

来自getClassLoader()

的JavaDoc
  

返回类的类加载器。一些实现可能会使用   null表示引导类加载器。 此方法将返回   如果此类由引导程序加载,则在此类实现中为null   班级装载机。

Bootstrap类加载器负责加载Java API中定义的类。 StringInteger类正由Bootstrap类加载器加载。