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