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

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

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

    Jhonney的專欄

       ----人見人愛
    隨筆 - 49, 文章 - 1, 評論 - 23, 引用 - 0
    數據加載中……

    類加載器總結

    很早時就關注了classloader,但一直沒有總結
    1.classloader是樹形結構。
             bootstrap Class Loaders負責裝載java.*下的基本類 
             extension Class Loaders負責裝載javax.*下的類 
             system Class Loaders負責系統(用戶)實現的類

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

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

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

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中文字幕亚洲色图| 亚洲婷婷五月综合狠狠爱| 亚洲中文无码av永久| 毛片免费全部播放无码| 亚洲精品亚洲人成在线观看麻豆| 国产成人免费视频| 亚洲精品影院久久久久久| 久久一本岛在免费线观看2020| 久久久久无码精品亚洲日韩 | 久久精品国产亚洲AV嫖农村妇女| 久久精品免费观看| 亚洲视频在线不卡| 国产香蕉九九久久精品免费| 亚洲精品无码永久在线观看男男| 成年女人永久免费观看片| 国产99久久亚洲综合精品| 亚洲综合色在线观看亚洲| 爽爽爽爽爽爽爽成人免费观看| 亚洲人成在线播放网站岛国| 日本视频一区在线观看免费| 亚洲人成人伊人成综合网无码| 国产片免费福利片永久| 国产高潮久久免费观看| 国产AV无码专区亚洲AV毛网站| 四虎成年永久免费网站| 亚洲av永久无码| 亚洲精品无码av人在线观看 | 无码人妻久久一区二区三区免费丨| 色偷偷女男人的天堂亚洲网| 国产亚洲福利一区二区免费看| 本道天堂成在人线av无码免费| 日韩亚洲Av人人夜夜澡人人爽| 中国在线观看免费高清完整版| 国产亚洲视频在线| 亚洲v高清理论电影| 久久精品免费一区二区喷潮 | 亚洲伦理中文字幕| 亚洲日本va午夜中文字幕久久| 无码少妇精品一区二区免费动态 | 在线免费观看亚洲| 国产免费卡一卡三卡乱码|