java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别
2017-01-04 16:12
288 查看
一、首先,查看Class类中的forName方法,可以发现有如下三个方法,但是我们通常用的是只有一个参数的方法。
简单介绍一下这三个方法:
1.第一个方法Class.forName("xxx")等同于第二个方法Class.forName("xxx",true,this.getClass().getClassLoader()),第二个布尔类型的参数表示装载该类的时候,是否初始化该类,即是否调用类中的static静态块函数及初始化静态成员变量;
2.第三个方法forName0是一个native方法,也就是第二个方法内部调用的。
二、查看ClassLoader().loadClass()方法,可以从下面源码看出,并没有指定是否初始化类的参数,只有通过clazz.newInstance()才能够初始化类。
因此,可以说与Class.forName("xxx", false, ,this.getClass().getClassLoader())原理是基本相同的。
简单介绍一下这三个方法:
1.第一个方法Class.forName("xxx")等同于第二个方法Class.forName("xxx",true,this.getClass().getClassLoader()),第二个布尔类型的参数表示装载该类的时候,是否初始化该类,即是否调用类中的static静态块函数及初始化静态成员变量;
2.第三个方法forName0是一个native方法,也就是第二个方法内部调用的。
二、查看ClassLoader().loadClass()方法,可以从下面源码看出,并没有指定是否初始化类的参数,只有通过clazz.newInstance()才能够初始化类。
因此,可以说与Class.forName("xxx", false, ,this.getClass().getClassLoader())原理是基本相同的。
相关文章推荐
- Class.forName(xxx.xx.xx) ClassLoader.loadClass newInstance()区别
- new对象与Class.forName("xxx").newInstance()的区别
- 通过Class.forName("xxx").newInstance()和通过new 得到对象有什么区别
- Java中class是如何加载到JVM中的(Class.forName("name")和ClassLoader.loadClass("name")的区别)
- c# 多线程中lock用法经典实例及lock("xxx"),lock(typeof(Class)),Lock(this)的区别
- Java中class是如何加载到JVM中的(Class.forName("name")和ClassLoader.loadClass("name")的区别)
- struts2中<a: href="xxx">xxx</a>与<s:a href="xxx">xxx</s:a>的区别
- 转:Class.forName和ClassLoader.loadClass的区别
- [Trouble Shoot]hibernate中的Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题的解决方法
- ClassLoader双亲委派模型loadClass过程
- activemq-5.5.0 环境 配置 搭建 activemq SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBi
- ClassLoader.loadClass()与Class.forName()的区别
- Applet在IE中出现Load:class xxx not found的解决方案
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题解决
- invalid: "org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.j
- ClassLoader介绍及ClassLoader.loadClass和Class.forName()的比较
- Class.forname() 和 ClassLoader.loadClass()的区别 (转)
- slf4j: failed to load class &quot;org.slf4j.impl.staticloggerbind
- Checkstyle "Unable to get class information for @throws tag 'xxxException" 问题
- Failed to load class "org.slf4j.impl.StaticLogger