長(zhǎng)風(fēng)秋雁
2022-06-11 13:09:04
java中何時(shí)用到Thread.currentThread().getContextClassLoader();來(lái)加載class,何時(shí)又用到Class.forname()來(lái)加載類(lèi)呢?
2 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
簡(jiǎn)單的說(shuō)Thread.setContextClassLoaser()是用于多線程 的加載器 ,后者就是正常的類(lèi)加載器
我們常見(jiàn)的簡(jiǎn)單通過(guò)JDBC直接連數(shù)據(jù)庫(kù)就是用Class.forname()加載驅(qū)動(dòng)
而當(dāng)用到多線程技術(shù)時(shí) 則需要獲取當(dāng)前線程 進(jìn)而使用線程類(lèi)加載器 來(lái)完成線程內(nèi)獨(dú)立的操作~~

尚方寶劍之說(shuō)
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
當(dāng)生成一個(gè)類(lèi)對(duì)象的時(shí)候,JVM會(huì)找與.java同名的.class文件,然后load到內(nèi)存,創(chuàng)建一個(gè)對(duì)象(引用);你說(shuō)的后邊的Class.forName("XXX")是通過(guò)字符串查找類(lèi),返回的是一個(gè)class對(duì)象。
添加回答
舉報(bào)
0/150
提交
取消