<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實例。
    主站蜘蛛池模板: 两个人日本WWW免费版| MM131亚洲国产美女久久| 国产精品久久久亚洲| 亚洲 日韩 色 图网站| 国产精品亚洲一区二区三区久久 | 亚洲中文字幕久久精品无码喷水 | 99在线精品免费视频九九视 | 亚洲成av人在线观看网站| 成全视频免费高清| 亚洲色大成网站www永久男同| 在线视频免费观看www动漫| 亚洲国产精品无码久久九九大片 | 亚洲国产日产无码精品| 国产免费女女脚奴视频网| 国产精品亚洲精品| 日本午夜免费福利视频| 免费一级做a爰片久久毛片潮| 中文字幕第13亚洲另类| 美女视频黄a视频全免费网站色窝| 亚洲人成影院在线| 成人免费一级毛片在线播放视频| 亚洲欧美国产日韩av野草社区| 国产大片91精品免费看3| 国产精品黄页免费高清在线观看| 亚洲国产成人片在线观看| 成年人免费的视频| 国产亚洲精品仙踪林在线播放| 亚洲无线观看国产精品| 99久久免费国产香蕉麻豆| 国产精品亚洲va在线观看| 国产亚洲精品va在线| 久久久久久曰本AV免费免费| 亚洲AV永久无码精品放毛片| 亚洲日韩在线中文字幕第一页| 人妻无码一区二区三区免费| 亚洲人成无码网站在线观看| 精品亚洲一区二区三区在线观看 | 97视频免费观看2区| 亚洲AV噜噜一区二区三区| 亚洲AV无码成人专区片在线观看| 日韩伦理片电影在线免费观看|