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

d1c*_*50n 1 java reflection classloader

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

Class clazz = getClass().getClassLoader().loadClass(className);
Run Code Online (Sandbox Code Playgroud)

Class clazz = Class.forName(className);
Run Code Online (Sandbox Code Playgroud)

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

Col*_*ert 8

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

对forName("X")的调用会导致名为X的类被初始化.

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


Class.forName(className, false, getClass().getClassLoader())是一样的getClass().getClassLoader().loadClass(className).


资源: