<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jhonney的專欄

       ----人見人愛
    隨筆 - 49, 文章 - 1, 評(píng)論 - 23, 引用 - 0
    數(shù)據(jù)加載中……

    類加載器總結(jié)

    很早時(shí)就關(guān)注了classloader,但一直沒有總結(jié)
    1.classloader是樹形結(jié)構(gòu)。
             bootstrap Class Loaders負(fù)責(zé)裝載java.*下的基本類 
             extension Class Loaders負(fù)責(zé)裝載javax.*下的類 
             system Class Loaders負(fù)責(zé)系統(tǒng)(用戶)實(shí)現(xiàn)的類

             三者的關(guān)系是 
             bootstrap class loaders是extension class loaders的父親 
             extension class loaders是system class loaders的父親
    2.class loader的裝載機(jī)制是parent delegate的模型。類的裝載是委托給父class loader去查找,如果沒有找到才用當(dāng)前的class loader來(lái)查找。
    3.不同的classLoader加載同一個(gè)類,實(shí)例是不同的,拋出castclassException
    4.Class.forName是從指定的classloader中裝載類,如果沒有指定,也就是一個(gè)參數(shù)的時(shí)候,是從裝載當(dāng)前對(duì)象實(shí)例所在的classloader中裝載類. 而ClassLoader的實(shí)例調(diào)用loadclass方法,是指從當(dāng)前ClassLoader實(shí)例中調(diào)用類,而這個(gè)實(shí)例與裝載當(dāng)前所在類實(shí)例的Classloader也許不是同一個(gè). 舉個(gè)例子吧, 有A,B , C兩個(gè)ClassLoader , 當(dāng)前運(yùn)行的類D的實(shí)例是d(裝載它的是A) , 如果D中使用Class.forName那么就是使用的ClassLoader就是A,當(dāng)然,也可以指定為B. 而如果D中代碼找到的ClassLoader實(shí)例是C,那么就是用D來(lái)裝載所指定的類.
    5.Thread.currentThread().getContextClassLoader().loadClass("className"),采用當(dāng)前線程的類加載器
    比如:

    1class A{
    2..
    3   public void test(){
    4   ..
    5   Class B =Thread.currentThread().getContextClassLoader().loadClass("className");
    6   ..
    7  }

    8..
    9}
    如果將第5行中的的語(yǔ)句換成
    1Class B=Class.forName("className"
    這兩種情況下calss B是一致的么?
    回答:大多數(shù)情況下,是一樣的,但是如果不改變 Thread的ClassLoader ,那么是否也是一樣的呢?
    考慮Java多線程應(yīng)用,執(zhí)行類A的方法體B中采用Tread的方式獲得classloader是調(diào)用者的類加載器。而class.forname是加載當(dāng)前類的也就是類A的類加載器。這兩種情況下是可能不一致的。
    在spring的環(huán)境下,類C中的類A實(shí)例通過(guò)依賴注入,如果采用Class.forName則Class B是IoC容器的類加載器;如果采用thread的話,則類加載器和加載類C的一樣

    posted on 2007-06-21 16:17 Jhonney 閱讀(257) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一级免费毛片| 亚洲精品国产精品乱码不卞| 暖暖日本免费中文字幕| 无码专区AAAAAA免费视频| 青青草免费在线视频| 国产区卡一卡二卡三乱码免费| 免费在线观看毛片| 精品亚洲成AV人在线观看| 亚洲二区在线视频| 91精品成人免费国产| 麻豆最新国产剧情AV原创免费| 四虎影在线永久免费四虎地址8848aa | 亚洲精品视频在线免费| 夜夜嘿视频免费看| 亚洲欧洲一区二区三区| h视频在线观看免费| av无码免费一区二区三区| 亚洲国产精品无码久久SM| 亚洲av无码不卡久久| 成人毛片免费播放| 色播亚洲视频在线观看| 亚洲美女视频免费| 亚洲日韩精品无码AV海量| 国内精品免费在线观看| 亚洲国产成人精品女人久久久 | 全黄大全大色全免费大片| 亚洲av永久无码制服河南实里| 亚洲国产欧美国产综合一区 | 亚洲制服丝袜在线播放| 成年18网站免费视频网站| 色吊丝免费观看网站| 欧洲精品成人免费视频在线观看| 亚洲成a人片在线不卡一二三区 | 国产无遮挡无码视频免费软件| 亚洲成AV人片一区二区密柚| 亚洲成人免费网站| 美景之屋4在线未删减免费| 亚洲精品亚洲人成人网| 成人免费网站视频www| 国产嫩草影院精品免费网址| 亚洲制服丝袜中文字幕|