更新時間:2017年12月29日11時36分 來源:傳智播客 瀏覽次數(shù):
按參數(shù)中指定的字符串形式的類名去搜索并加載相應(yīng)的類,如果該類字節(jié)碼已經(jīng)被加載過,則返回代表該字節(jié)碼的Class實例對象,否則,按類加載器的委托機制去搜索和加載該類,如果所有的類加載器都無法加載到該類,則拋出ClassNotFoundException。加載完這個Class字節(jié)碼后,接著就可以使用Class字節(jié)碼的newInstance方法去創(chuàng)建該類的實例對象了。
有時候,我們程序中所有使用的具體類名在設(shè)計時(即開發(fā)時)無法確定,只有程序運行時才能確定,這時候就需要使用Class.forName去動態(tài)加載該類,這個類名通常是在配置文件中配置的,例如,spring的ioc中每次依賴注入的具體類就是這樣配置的,jdbc的驅(qū)動類名通常也是通過配置文件來配置的,以便在產(chǎn)品交付使用后不用修改源程序就可以更換驅(qū)動類名。