更新時(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/
Java面試題:BS與CS的聯(lián)系與區(qū)別
2017-12-29Java面試題Tomcat的優(yōu)化經(jīng)驗(yàn)
2017-12-29JavaEE技術(shù)點(diǎn)之Java路徑問(wèn)題
2017-12-28JavaEE技術(shù)知識(shí)點(diǎn):Myeclipse Web開(kāi)發(fā)
2017-12-26JavaEE技術(shù)知識(shí)點(diǎn):Myeclipse Web開(kāi)發(fā)
2017-12-26JavaEE知識(shí)點(diǎn):MVC設(shè)計(jì)模式
2017-12-26