类加载样式的混乱

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

标签: java

正如我在一个线程Java: Difference between Class.forName and ClassLoader.loadClass中发现的那样, Class.forName()将始终使用调用者的ClassLoader,而ClassLoader.loadClass()可以指定不同的ClassLoader

System.out.println(Class.forName("test.Employee").getClassLoader());
System.out.println(ClassLoader.getSystemClassLoader().loadClass("test.Employee").getClassLoader());

但是上面两行正在打印相同的结果

sun.misc.Launcher$AppClassLoader@7ced01
sun.misc.Launcher$AppClassLoader@7ced01

请解释原因。

1 个答案:

答案 0 :(得分:0)

您使用SystemClassLoader({1}}加载当前类时没有任何区别。

如果您使用不同的类加载器来加载一个类,那么当您在使用不同类加载器加载的类中使用时,这两个aproaches将使用不同的类加载器。