loadClass()和forName()之间的区别

时间:2010-09-15 11:23:31

标签: java reflection classloader

有谁知道它们之间有什么不同:

Class clazz = getClass().getClassLoader().loadClass(className);

Class clazz = Class.forName(className);

当我尝试两者时,它给了我相同的结果。

1 个答案:

答案 0 :(得分:8)

Class.forName(className)在加载的类中执行静态初始化程序代码块。

  

对forName(“X”)的调用会导致名为X的类被初始化。

getClass().getClassLoader().loadClass(className)没有。


Class.forName(className, false, getClass().getClassLoader())getClass().getClassLoader().loadClass(className)相同。


资源: