Class.forName()
返回一个Class对象 - 一个表示特定Java类的对象。
newInstance()
- java.lang.Class的一个方法 - 将使用表示类的无参数构造函数来创建该类的一个实例。
对于你的问题:(从http://www.coderanch.com/t/385654/java/java/Difference-between-Class-forName-Class参考)
Class.forName()
到达一类的引用,Class.forName().newInstance()
尝试使用无参数的构造函数的类返回一个新的实例。到目前为止没有惊喜。 Class.forName()
的另一个常见用途是使Class被加载,因为某些类的类具有来自加载进程的副作用,这是其他用途所必需的。 JDBC
是此进程的一个大用户,因为驱动程序类在加载时需要向DriverManager
类注册。
在Java的黑暗日子里,可能是v1.1.8,但可能高达Java 1.2,但有一个问题,即默认的ClassLoader
在创建实例之前不会加载类。在这些情况下,如果您使用的是Class.forName()
而不是Class.forName().newInstance()
,则JDBC代码将失败。
虽然newInstance()
会创建一个立即丢弃的实例,但需要使Class.forName()
正常工作。这个解决方法不再需要。
请点击这里http://stackoverflow.com/questions/2092659/what-is-difference-between-class-forname-and-class-forname-newinstance – Nikhil 2012-07-17 07:05:21
检查此链接 的http://计算器.COM /问题/ 2092659 /什么 - 是差之间-类的forName和-类的forName-的newInstance – 2012-07-17 07:05:56