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

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

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

    回首向來蕭瑟處,歸去,也無風雨也無晴.

     

    打印類加載器

    一段代碼挺有意思:

    public class Quux {

        
    public static void main(String[] args) {
            ClassLoader cl
    =Quux.class.getClassLoader();
            System.out.println(
    "Delegation for Quux:");
            
    while(cl!=null){
                System.out.println(cl);
                cl
    =cl.getParent();
            }
            System.out.println(
    "{bootstrap loader}");
        }
    }


    得到得結果是:
    Delegation for Quux:
    sun.misc.Launcher$AppClassLoader@131f71a
    sun.misc.Launcher$ExtClassLoader@15601ea
    {bootstrap loader}


    這鍛代碼展現了類加載的3個加載器(ClassLoader):

    AppClassLoader是系統類加載器,(即由getSystemClassLoader()方法可得到的Loader),它主要負責加載應用類。
    ExtClassLoader是擴展類加載器,默認下負責加載${JAVA_HOME}$/lib/ext目錄下的類。
    bootstrapLoader是引導類加載器,主要負責檢查引導路徑及加載核心api包。

    這3個加載器先后為 boot->Ext->App ,boot是Ext的父加載器,Ext是App的父加載器,加載器是成樹狀的,當然也可以自己定義加載器。加載器加載的每一個類的實例都維護個指向裝載器的引用,所以要得到加載器得引用很簡單:getClassLoader()就行了,而getParent()則得到其父類加載器(代碼中表現的很清楚了)。

    類加載器有個委托規則(基本上就是偷懶規則):加載器加載類前總是要問下父加載器有沒有這個類(有就不加載了-_-!),而這個過程中的ClassLoader遞歸集就稱為一個DELEGATION.

    加載的過程又有顯示加載,一般用URLClassLoader:
        new URLClassLoader(new URL[]{url})
    這玩意玩熱部署挺有意思的,tom貓里好像就有(沒什么印象,汗)。

    有的人也用Loader來裝載配置文件,我也喜歡這么用,
        getSystemClassLoader().getResourceAsStream(String res);
    這個方法返回個InputStream,用properties提取下就行了,真是居家旅行必備良藥啊。
       
    new Properties().load(is);

    還有隱式加載,既然叫隱式,咱明代碼就干涉不到了,繼承,引用一般都是隱式加載類的。

    對了,java中還有個參數:-verbose,用了它就可以詳細看到加載的過程。

    類加載屬于中級的知識了,應用內容也不是一點兩點,咱又不是牛人,講不太清楚。牛人Halloway寫的component Development for the java Platform挺不錯,建議看看;在IMBDevelopers上還有幾篇很好的文章,有興趣的話就去看看吧。

    posted on 2006-01-21 22:16 VANS 閱讀(504) 評論(0)  編輯  收藏 所屬分類: code


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    主站蜘蛛池模板: 亚洲成A人片在线观看中文 | 免费国产va在线观看| 777爽死你无码免费看一二区| 亚洲日韩涩涩成人午夜私人影院| MM1313亚洲精品无码久久| 日韩免费视频观看| 亚洲中文字幕乱码AV波多JI| 久久WWW色情成人免费观看| 亚洲人成网国产最新在线| 日本免费一区尤物| 国产亚洲综合精品一区二区三区| 国产免费av一区二区三区| 曰批全过程免费视频观看免费软件| 免费国产成人午夜私人影视| 国产精品免费视频观看拍拍| 国产AV无码专区亚洲精品| 99re6在线精品视频免费播放| 亚洲理论片中文字幕电影| 久久WWW免费人成人片| 美女黄色毛片免费看| 亚洲人成色777777在线观看| 久久国产色AV免费看| 在线精品亚洲一区二区| 免费亚洲视频在线观看| 四虎影视无码永久免费| 亚洲精品第一国产综合精品| 好吊妞在线新免费视频| 巨胸喷奶水www永久免费| 亚洲第一二三四区| 波多野结衣一区二区免费视频| 中文字幕永久免费视频| 亚洲人成电影青青在线播放| 亚洲国产精品毛片av不卡在线| 野花香高清在线观看视频播放免费| 亚洲国产精品张柏芝在线观看| 国产一区二区三区无码免费| 国产免费无码一区二区| 久久乐国产综合亚洲精品| 国产成人精品日本亚洲专区 | 亚洲精品少妇30p| 黄色片在线免费观看 |