1. 程式人生 > >Class.forName 和 import 的區別

Class.forName 和 import 的區別

1.  實現效果不同。

Class.forName()是java反射機制下的方法,我們可以不通過new關鍵字,而利用一個包含包路徑的完整類名獲取這個class類物件,有這個Class物件當然可以獲得相應的類的例項(在有無參建構函式的情形下)。

import  需要你在寫程式碼時候瞭解這個類的屬性和方法,才能使用。

而後者,可以在你完全不知道該類實現的情況下,使用它。 查API你可以知道,可以通過其他的一些方法獲取這個類的建構函式、成員函式的函式名、引數個數、型別、返回型別等等。 而import是當你要用到java類庫或者是其他包裡面的類時,需要新增上。“靜態的載入方式”當程式執行時,去相應的路徑尋找這個類的實現體。 而class.forName()會載入類,這是一個“動態的載入方式

”!載入類的時候,會初始化一個Class物件(注意不是類的例項)。當你不需要建立任何例項,而需要jvm去做一些事情的時候,使用class.forName()非常有用,這就是為什麼資料庫的驅動程式都是用這種形式來載入,因為載入驅動程式不需要建立物件例項。”