`
zhanyu1984
  • 浏览: 71144 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Class.forName()和ClassLoader的区别

阅读更多
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方法进行实例化
分享到:
评论

相关推荐

    liuwei1989#study-guide#17-Class.forName和classloader的区别1

    并且只有调用了newInstance()方法采用调用构造函数,创建类的对象看下Class.forName()源码//Class.forName(String c

    在Java的反射中,Class.forName和Class

    在Java的反射中,Class.forName和ClassLoader的区别共4页.pdf.zip

    jdbc--sqljdbc4-2.0.jar

    java链接sqlserver数据库包如下错误时: ... at java.net.URLClassLoader.findClass(Unknown ... at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) 添加sqljdbc4-2.0包即可

    在可执行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.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.trs.gateway.commons.hive.HiveFeature.getConnection(HiveFeature.java:55) ... 8 more

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

    at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at com.trs.gateway.commons.hive.HiveFeature.getConnection(HiveFeature.java:55) ... 8 more

    基于javatcpsocket通信的拆包和装包源码-someData:存放一些思维导图,图片,ppt等等

    基于java tcp socket通信的拆包和装包源码 ...反射中,Class.forName和ClassLoader区别 动态代理的几种实现方式,对应的优缺点 动态代理与cglib实现的区别 为什么CGlib方式可以对接口实现代理 序列化,

    algorithm-study:你好,世界

    :green_apple: :red_apple: ...反射中,Class.forName和ClassLoader区别 。 java动态代理实现与原理详细分析 描述动态代理的几种实现方式,分别说出相应的优缺点。 动态代理与cglib实现的区别。 为什么CGlib

    大数据面试题.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. 堆和栈的区别

    疯狂java讲义

    疯狂java讲义 源代码** * Description: ... * Program Name: * Date: ... * @version 1.0 */ class Tester ... System.out.println("Tester类的静态初始化块...");... Class.forName("Tester"); } }

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

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

    java8源码-java_architect:java_架构师

    反射中,Class.forName和classloader的区别? session和cookie的区别和联系,session的生命周期,多个服务部署时session管理。 Java中的队列都有哪些,有什么区别。 Java的内存模型以及GC算法 Java8的新特性 Java...

    JAVA核心知识点整理(有效)

    25 3:ServicorTo 和 ServicorFrom 互换................................................................................................................25 2.3.3.1. 2.4.1. 如何确定垃圾 ......................

    day021-反射和注解笔记和代码.rar

    1.2 static 类<?> forName(String name, boolean initialize, ClassLoader loader) name:全限定路径名 initialize:表示是否初始化,默认是false loader:可以指定一个类加载器加载...

    java + 动态代理 + 动态代理实际应用场景

    1:静态代理出现的实际背景,静态代理时如何演化成动态代理 2: 动态代理demo 举例实际应用场景(载入数据库驱动的时候,使用AIDL与系统Servic...4: 动态代理使用到基础理论:Class.forName("xxxx") 得到Class类 。

    带注释的Bootstrap.java

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

    spring-boot-reference.pdf

    Customizing the Restart Classloader 20.2.7. Known Limitations 20.3. LiveReload 20.4. Global Settings 20.5. Remote Applications 20.5.1. Running the Remote Client Application 20.5.2. Remote Update 21. ...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【反射】反射中,Class.forName和classloader的区别 42 【JVM】JAVA编译原理和JVM原理 42 【JVM】Java内存模型 44 【JVM】jvm内存模型 45 主内存与工作内存 45 内存间交互操作 46 重排序 48 【JVM】内存泄漏 49 ...

Global site tag (gtag.js) - Google Analytics