import java.net.*;public class LoaderDemo{
public static void main(String[] args)throws Exception{
URL url=new URL("file:subdir/");
URL[] urls=new URL[]{url}; URLClassLoader loader=new URLClassLoader(urls);
URLClassLoader loader2=new URLClassLoader(urls); Class cls=loader.loadClass("LoadMe");
Class cls2=loader.loadClass("LoadMe");
System.out.println("(cls==cls2) is "+(cls==cls2));
}
}
subdir目录下:
public class LoadMe
{
static
{
System.out.println(LoadMe.class+" loaded");
}
}
cls和cls2应该是由loader和loader2显示加载的,应该是false才对呀!
书上讲的是false,但是为什么输出是true
public static void main(String[] args)throws Exception{
URL url=new URL("file:subdir/");
URL[] urls=new URL[]{url}; URLClassLoader loader=new URLClassLoader(urls);
URLClassLoader loader2=new URLClassLoader(urls); Class cls=loader.loadClass("LoadMe");
Class cls2=loader.loadClass("LoadMe");
System.out.println("(cls==cls2) is "+(cls==cls2));
}
}
subdir目录下:
public class LoadMe
{
static
{
System.out.println(LoadMe.class+" loaded");
}
}
cls和cls2应该是由loader和loader2显示加载的,应该是false才对呀!
书上讲的是false,但是为什么输出是true
Class cls2=loader.loadClass("LoadMe");一样的
是不是写错了?
说对了,是我写错了,
改为Class cls2=loader2.loadClass("LoadMe");
后就是false了
谢谢!!