Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类加载样式的混乱_Java - Fatal编程技术网

Java 类加载样式的混乱

Java 类加载样式的混乱,java,Java,正如我在一个线程中发现的那样,Class.forName()将始终使用调用方的类加载器,而ClassLoader.loadClass()可以指定不同的类加载器 System.out.println(Class.forName("test.Employee").getClassLoader()); System.out.println(ClassLoader.getSystemClassLoader().loadClass("test.Employee").getClassLoader());

正如我在一个线程中发现的那样,Class.forName()将始终使用调用方的类加载器,而ClassLoader.loadClass()可以指定不同的类加载器

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

请解释原因。

对于您来说没有区别,因为您当前的类是使用SystemClassLoader加载的,它恰好是
sun.misc.Launcher$AppClassLoader@7ced01


如果使用不同的类加载器加载类,在使用不同类加载器加载的类中使用时,两个类加载器将使用不同的类加载器。

为什么期望结果不同?如果两种样式的类加载器不同,则应该有两个不同的对象。使用不同的类加载器加载类,并比较类对象(而不是类实例)为了平等。。你会得到你的answer@WhoAmI我的问题不是针对Employee类对象的相等性,而是针对classloader的对象。在这两种情况下?那么调用方的类加载器是什么?