首頁(yè)技術(shù)文章正文

Java面試題之Class.forName的作用

更新時(shí)間:2017-12-29 來(lái)源:黑馬程序員 瀏覽量:

按參數(shù)中指定的字符串形式的類(lèi)名去搜索并加載相應(yīng)的類(lèi),如果該類(lèi)字節(jié)碼已經(jīng)被加載過(guò),則返回代表該字節(jié)碼的Class實(shí)例對(duì)象,否則,按類(lèi)加載器的委托機(jī)制去搜索和加載該類(lèi),如果所有的類(lèi)加載器都無(wú)法加載到該類(lèi),則拋出ClassNotFoundException。加載完這個(gè)Class字節(jié)碼后,接著就可以使用Class字節(jié)碼的newInstance方法去創(chuàng)建該類(lèi)的實(shí)例對(duì)象了。

有時(shí)候,我們程序中所有使用的具體類(lèi)名在設(shè)計(jì)時(shí)(即開(kāi)發(fā)時(shí))無(wú)法確定,只有程序運(yùn)行時(shí)才能確定,這時(shí)候就需要使用Class.forName去動(dòng)態(tài)加載該類(lèi),這個(gè)類(lèi)名通常是在配置文件中配置的,例如,spring的ioc中每次依賴注入的具體類(lèi)就是這樣配置的,jdbc的驅(qū)動(dòng)類(lèi)名通常也是通過(guò)配置文件來(lái)配置的,以便在產(chǎn)品交付使用后不用修改源程序就可以更換驅(qū)動(dòng)類(lèi)名。


本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

作者:黑馬程序員JavaEE培訓(xùn)學(xué)院

首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!