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

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

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

    ClassLoader of Java

    乍一看到ClassLoader,我的第一感覺就是這東西好神秘啊。然后找了一下資料,略懂了一點皮毛,然后在這里和大家分享一下,這篇文章在接下來的日子里會不斷的被更新,希望會越來越完善。

    首先,我們了解一下ClassLoader是干什么用的呢?
    大家都知道,JVM解析的是Class的字節碼文件,那么JVM怎樣來加載這個字節碼文件呢,沒錯,ClassLoader負責了這項重要的工作。

    JDK中主要有以下幾種ClassLoader:

    a, Bootstrap ClassLoader/啟動類加載器
    主要負責jdk_home/lib目錄下的核心 api 或 -Xbootclasspath 選項指定的jar包裝入工作.

     

    b, Extension ClassLoader/擴展類加載器
    主要負責jdk_home/lib/ext目錄下的jar包或 -Djava.ext.dirs 指定目錄下的jar包裝入工作

     

    c, System ClassLoader/系統類加載器
    主要負責java -classpath/-Djava.class.path所指的目錄下的類與jar包裝入工作.

     

    b, User Custom ClassLoader/用戶自定義類加載器(java.lang.ClassLoader的子類)
    在程序運行期間, 通過java.lang.ClassLoader的子類動態加載class文件, 體現java動態實時類裝入特性.


    那么我們能用ClassLoader做什么事情呢?

    如果我們想動態的加載一個類,比如我們想實現一個Hot-Swap的應用,我們期望一個剛開發的高版本的Class在不關閉JVM的情況下讓它工作,此時我們就可以實現我們自己的ClassLoader,重寫里面的findClass方法。


    這里我們需要注意ClassLoader的雙親委托模式,即定義ClassLoader加載一個類之前,要先委托它的父親ClassLoader進行加載,只有當父親ClassLoader無法加載成功后,才會由自己加載。為什么要使用這種雙親委托模式呢? 


    第一個原因就是因為這樣可以避免重復加載,當父親已經加載了該類的時候,就沒有必要子ClassLoader再加載一次。 

    第二個原因就是考慮到安全因素,我們試想一下,如果不使用這種委托模式,那我們就可以隨時使用自定義的String來動態替代java核心api中定義類型,這樣會存在非常大的安全隱患,而雙親委托的方式,就可以避免這種情況,因為String已經在啟動時被加載,所以用戶自定義的ClassLoader 無法加載另外的String。

     


    參考資料:

    http://www.iteye.com/topic/136427

    http://www.iteye.com/topic/83978




    Kyle Wang

    posted on 2012-04-22 17:15 王樹東 閱讀(180) 評論(0)  編輯  收藏 所屬分類: Java Skills Learning and Sharing


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


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    常用鏈接

    留言簿

    隨筆分類(17)

    隨筆檔案(15)

    文章分類(4)

    文章檔案(5)

    收藏夾(4)

    Algorithm

    Design

    Environment Setup

    Installer

    Maven

    MINA

    OS

    Skills for Java

    VIM

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线观看免费亚洲| 亚洲国产精品xo在线观看| 国产亚洲欧美日韩亚洲中文色| 亚洲视频在线免费看| 久久精品亚洲精品国产色婷| 久久九九久精品国产免费直播| 亚洲日韩中文在线精品第一| 人体大胆做受免费视频| 亚洲国产一区二区视频网站| 色一情一乱一伦一视频免费看| 亚洲精品国产高清嫩草影院| 免费一区二区三区在线视频| 怡红院亚洲怡红院首页| 免费黄网站在线看| 亚洲国产亚洲综合在线尤物| 一个人看的www在线观看免费| 中文字幕亚洲码在线| 四虎影视永久免费视频观看| 乱淫片免费影院观看| 亚洲熟妇无码八AV在线播放| 日本人成在线视频免费播放| 国产精品亚洲AV三区| 亚洲国产日韩成人综合天堂 | 国产最新凸凹视频免费| 国产亚洲成在线播放va| 国产成人亚洲精品狼色在线 | 无码日韩人妻AV一区免费l| 亚洲视频在线精品| 久久久久久久岛国免费播放| 亚洲白嫩在线观看| 国产免费变态视频网址网站| 在线视频网址免费播放| 亚洲国产精品久久人人爱| 色吊丝最新永久免费观看网站| 在线播放免费人成视频网站| 亚洲日韩图片专区第1页| 无码国产精品一区二区免费式影视 | 亚洲黄色三级网站| 国产免费人视频在线观看免费| aa级女人大片喷水视频免费| 亚洲色欲色欲综合网站|