Class.forName(className) 实际上是调用Class.forName(className, true, this.getClass().getClassLoader())。注意第二个参数,是指Class被loading后是不是必须被初始化。 ClassLoader.loadClass(className)实际上调用的是ClassLoader.loadClass(name, false),第二个参数指出Class是否被link。 区别就出来了。Class.forName(className)装载的class已经被初始化,而ClassLoader.loadClass(className)装载的class还没有被link
//首先我们定义一个函数来进行测试
var a=function(){console.log(123)}
//调用它的toString方法,会输出什么结果呢?
a.toString();
//呀, 居然输出了函数的代码呢
"function(){console.log(123)}"