反射中,Class.forName和ClassLoader的区别?

参考解答

ClassLoader中的loadClass方法可以用来加载类,但只会涉及类加载的前两个阶段:加载、连接,不会执行初始化 Class.forName有两个方法,内部都是调用ClassLoader完成类加载:

  • Class.forName(String name, boolean initialize, ClassLoader cl) 可以通过参数2来控制是否执行类初始化,参数3可以选择要使用的ClassLoader
  • Class.forName(String name) 默认是执行类初始化的,并且使用当前调用者的类加载器完成加载动作

results matching ""

    No results matching ""