`

Class.forName 和 ClassLoader.loadClass的区别

    博客分类:
  • java
 
阅读更多

 

Class.forName("xx.xx")等同于 
Class.forName("xx.xx",true,ClassLoader.getSystemClassLoader());//此时已经初始化实例对象了 

而ClassLoader loader = ClassLoader.getSystemClassLoader(); 
Class className=loader.loadClass("xx.xx");//此时class没有实例化对象 
className.newInstance();//此时才真正的初始化实例对象 

综上所述它们的区别在于

  • Class.forName("xx.xx")已经实例化类对象了
  • ClassLoader.loadClass("xx.xx");没有实例化类对象,需要调用newInstance方法进行实例化
分享到:
评论

相关推荐

    jdbc--sqljdbc4-2.0.jar

    at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0...

    在可执行jar中载入第三方jar的几个解决方法

    开发完毕,部署的时候,将开发的class打成一个可执行jar包,会发现通过Class.forName(String classname) 或ClassLoader.getSystemClassLoader().loadClass(String classname)来动态载入存在于第三方jar包中的class会抛...

    hive-jdbc-2.1.0-standalone.jar

    at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at ...

    hive-jdbc-1.1.0-cdh5.4.5-standalone.jar

    at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at ...

    大数据面试题.pdf

    52 1-12)Java中Class.forName和ClassLoader.loadClass的区别 Class.forName("xx.xx")等同于Class.forName("xx.xx",true,CALLClass.class.getClassLoader()),第⼆个参数(bool)表⽰装载类的时候是否 初始化该类,即...

    Java 基础面试题

    该文档主要整理了常见的Java基础面试题,包含以下内容: ...32. Class.forName()和ClassLoader.loadClass()的区别 34. 如何防止创建的类名不能java为已有类名,Java加载双亲委派机制 35. 堆和栈的区别

    金蝶Apusic应用服务器V6参考b手册b.doc

    这两个方法的行为有轻微的区别,Class.forName()在类装载完成后,会对类进行初始化,而ClassLoader.loadClass()只负责装载类。 * 隐式类装载发生在由于引用、实例化或继承导致需要装载类的时候。隐式类装载是在幕后...

    疯狂java讲义

    疯狂java讲义 源代码** * Description: ... * Program Name: ... cl.loadClass("Tester"); System.out.println("系统加载Tester类"); //下面语句才会初始化Tester类 Class.forName("Tester"); } }

    sarras:通过Java应用程序的静态和动态分析为Graal基板VM反射配置文件生成器

    作为Java代理附加到常规Java应用程序(不是来自本机映像),并拦截反射调用(还包括Class.forName(...)和ClassLoader.loadClass(...)调用)。 因此,它可以在运行时收集有关通过反射访问/引用哪些类/方法/字段的信息...

    带注释的Bootstrap.java

    private ClassLoader createClassLoader(String name, ClassLoader parent) throws Exception { //CatalinaProperties解析$CATALINA_HOME\conf\catalina.properties, //并将catalina.properties内的属性存为...

    Apache Geronimo 2.1_ Quick Reference.pdf

    Load balancing with Apache web server 310 Installing the Apache web server 310 Web app in Geronimo served through Apache web server 310 Apache HTTP portlet 311 Accessing the sample app through ...

Global site tag (gtag.js) - Google Analytics