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

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

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

    posts - 88, comments - 3, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于java默認的類加載器的簡單代碼研究

    Posted on 2016-03-16 15:40 Milo的海域 閱讀(315) 評論(0)  編輯  收藏 所屬分類: Java
    1. 默認的3個classloader: BootstrapClassloader (Native實現), ExtClassloader, AppClassloader (Java實現)
    2. 3個加載器并不是真正的父子繼承關系,而是邏輯上的,JVM啟動先創建ExtClassloader instance,然后構造AppClassloader的時候傳入ExtClassloader實例作為parent
            Launcher.ExtClassLoader extcl;
            
    try {
                extcl 
    = Launcher.ExtClassLoader.getExtClassLoader();
            } 
    catch (IOException var10) {
                
    throw new InternalError("Could not create extension class loader", var10);
            }

            
    try {
                
    this.loader = Launcher.AppClassLoader.getAppClassLoader(extcl);
            } 
    catch (IOException var9) {
                
    throw new InternalError("Could not create application class loader", var9);
            }

    關于雙親委派原理: 在加載類的時候,會看看parent有沒有設定,如果設定了 就調用parent.loadClass方法,如果沒設定(==null)也就是parent應該是BootstrapClassloader, 會調用native的findBootstrapClass來加載類,代碼:
                    try {
                        
    if(this.parent != null) {
                            c 
    = this.parent.loadClass(name, false);
                        } 
    else {
                            c 
    = this.findBootstrapClassOrNull(name);
                        }
                    } 
    catch (ClassNotFoundException var10) {
                        ;
                    }

    目的是按照一定優先級別裝載系統的lib,系統ext目錄的lib,以及classpath的lib,防止系統的默認行為或者類的實現被修改。

    3. java 類的動態加載
    Java內置的ClassLoader總會在加載一個Class之前檢查這個Class是否已經被加載過,已經被加載過的Class不會加載第二次。因此要想重新加載Class,我們需要實現自己的ClassLoader。
    另外一個問題是,每個被加載的Class都需要被鏈接(link),這是通過執行ClassLoader.resolve()來實現的,這個方法是 final的,因此無法重寫。Resove()方法不允許一個ClassLoader實例link一個Class兩次,因此,當你需要重新加載一個 Class的時候,你需要重新New一個你自己的ClassLoader實例。
    主站蜘蛛池模板: 99re6热视频精品免费观看| 五月天婷婷精品免费视频| 免费在线看黄的网站| 国产成人亚洲精品91专区手机| 猫咪www免费人成网站| 国产成人免费a在线资源| 美女扒开屁股让男人桶爽免费| 日本午夜免费福利视频| jizzjizz亚洲日本少妇| 免费一级毛片在级播放| 人碰人碰人成人免费视频| 亚洲熟女少妇一区二区| 另类免费视频一区二区在线观看 | 久久亚洲国产中v天仙www| 国产特黄特色的大片观看免费视频 | 青青青国产在线观看免费网站| 亚洲福利视频一区二区三区| 成人福利免费视频| 亚洲中文字幕AV每天更新| 国产亚洲精品免费| 中文在线观看永久免费| 久久亚洲AV无码精品色午夜| 国产精品成人免费一区二区| 国产成人综合亚洲| 久久亚洲免费视频| 成人性生交大片免费看午夜a| mm1313亚洲国产精品无码试看| 亚洲色爱图小说专区| 24小时日本韩国高清免费| 337P日本欧洲亚洲大胆精品| 亚洲一区二区视频在线观看 | 免费精品国产自产拍在| 久久亚洲精品无码gv| 亚洲人成网站在线观看播放| 国产精品永久免费10000| 美美女高清毛片视频黄的一免费| 综合亚洲伊人午夜网 | 久久亚洲国产精品成人AV秋霞| 日韩在线天堂免费观看| 免费福利在线视频| 亚洲精华国产精华精华液|