類加載器介紹

  • 有兩種類型的類加載器:
    • Java虛擬機自帶的類加載器
      • 根類加載器(Bootstrap帖汞,也叫啟動類加載器)
        該加載器沒有父加載器区拳。它所負(fù)責(zé)加載虛擬機的核心類庫,如java.lang.*等,從系統(tǒng)屬性sun.boot.class.path所指定的目錄中加載類庫叉信,它的實現(xiàn)依賴于底層操作系統(tǒng),屬于虛擬機的實現(xiàn)一部分艘希,它并沒有繼承java.lang.ClassLoader類硼身。加載的jre\lib\rt.jar硅急。
      • 擴(kuò)展類加載器(Extension)
        它的父加載器為根類加載器,它從java.ext.dirs系統(tǒng)屬性所指定的目錄中加載類庫佳遂,或者從JDK的安裝目錄的jre\lib\ext子目錄(擴(kuò)展目錄)下加載類庫营袜,如果把用戶創(chuàng)建的JAR文件放在這個目錄下,也會自動由擴(kuò)展類加載器加載讶迁,擴(kuò)展類加載器時純Java類连茧,是java.lang.ClassLoader類的子類。只加載JAR包巍糯。
      • 系統(tǒng)(應(yīng)用)類加載器(System)
        也稱為應(yīng)用類加載器啸驯,它的父加載器為擴(kuò)展類加載器,它從環(huán)境變量classpath或者系統(tǒng)屬性java.class.path所指定的目錄中加載類祟峦,它是用戶自定義的類加載器的默認(rèn)父加載器罚斗,系統(tǒng)類加載器是純Java類,是java.class.ClassLoader類的子類宅楞。
    • 用戶自定義的類加載器
      • java.lang.ClassLoader的子類
      • 用戶可以定制類的加載方式
  • 數(shù)組類型不是ClassLoader創(chuàng)建的针姿,是由Java runtime創(chuàng)建的。數(shù)組類型的Class.getClassLoader()厌衙,和對應(yīng)的元素類型返回的ClassLoader一樣距淫。如果是原生類型的數(shù)組,是沒有ClassLoader的婶希。
  • 類加載器雙親委托模型的好處:
    1. 可以確保Java核心庫的類型安全榕暇,所有的Java應(yīng)用都至少會引用java.lang.Object類,也就是說在運行期喻杈,java.lang.Object這個類會被加載到Java虛擬機中彤枢,如果這個加載過程是由Java應(yīng)用自己的類加載器所完成的,那么很可能就會在JVM中存在多個版本的java.lang.Object類筒饰,而且這些類之間還是不兼容的缴啡,互相不可見(正是命名空間在發(fā)揮著作用)。
    2. 可以確保Java核心類庫所提供的類不會被自定義的類所替代瓷们。
    3. 不同的類加載器可以為相同名稱(binary name)的類創(chuàng)建額外的命名空間业栅。相同的名稱的類可以并存在Java虛擬機中,只需要用不同的類加載器來加載他們即可谬晕。不同的類加載器所加載的類之間是不兼容式镐,這就相當(dāng)于在Java虛擬機內(nèi)部創(chuàng)建了一個又一個互相隔離的Java類空間,這類技術(shù)在很多框架中都得到了實際應(yīng)用固蚤。
  • 類加載器的加載
    內(nèi)建于JVM中的啟動類加載器會加載java.lang.ClassLoader以及其他的Java平臺類娘汞,當(dāng)JVM啟動時,一塊特殊的機器碼會運行夕玩,它會加載擴(kuò)展類加載器與應(yīng)用類加載器你弦,這塊特殊的機器碼叫做啟動類加載器(bootstrap)惊豺。啟動類加載器并不是Java類,而其他的類加載器則都是Java類禽作,啟動類加載器是特定于平臺的機器指令尸昧,它負(fù)責(zé)開啟整個加載過程。所有類加載器(除了啟動類加載器)都被實現(xiàn)為Java類旷偿。不過總歸要有一個組件來加載第一個Java類加載器烹俗,從而讓整個加載過程能夠順利進(jìn)行下去,加載第一個純Java類加載器就是啟動類加載器的職責(zé)萍程。啟動類加載器還會負(fù)責(zé)加載供JRE正常運行所需要的基本組件幢妄,這包括java.util與java.lang包中的類等等。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茫负,一起剝皮案震驚了整個濱河市蕉鸳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忍法,老刑警劉巖潮尝,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異饿序,居然都是意外死亡勉失,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門原探,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乱凿,“玉大人,你說我怎么就攤上這事踢匣。” “怎么了戈抄?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵离唬,是天一觀的道長。 經(jīng)常有香客問我划鸽,道長输莺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任裸诽,我火速辦了婚禮嫂用,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丈冬。我一直安慰自己嘱函,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布埂蕊。 她就那樣靜靜地躺著往弓,像睡著了一般疏唾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上函似,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天槐脏,我揣著相機與錄音,去河邊找鬼撇寞。 笑死顿天,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蔑担。 我是一名探鬼主播牌废,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钟沛!你這毒婦竟也來了畔规?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤恨统,失蹤者是張志新(化名)和其女友劉穎叁扫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畜埋,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡莫绣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悠鞍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片对室。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咖祭,靈堂內(nèi)的尸體忽然破棺而出掩宜,到底是詐尸還是另有隱情,我是刑警寧澤么翰,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布牺汤,位于F島的核電站,受9級特大地震影響浩嫌,放射性物質(zhì)發(fā)生泄漏檐迟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一码耐、第九天 我趴在偏房一處隱蔽的房頂上張望追迟。 院中可真熱鬧,春花似錦骚腥、人聲如沸敦间。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽每瞒。三九已至金闽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剿骨,已是汗流浹背代芜。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浓利,地道東北人挤庇。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像贷掖,于是被迫代替她去往敵國和親嫡秕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ClassLoader 動態(tài)加載某個 class 文件到內(nèi)存中苹威, 因為我們寫好程序以后昆咽, 不管是 CS 結(jié)構(gòu)還是 ...
    Starxinchen閱讀 389評論 0 0
  • 類加載器是 Java 語言的一個創(chuàng)新,也是 Java 語言流行的重要原因之一牙甫。它使得 Java 類可以被動態(tài)加載到...
    CHSmile閱讀 1,598評論 0 12
  • 虛擬機把描述類的數(shù)據(jù)從Class文件加載到內(nèi)存掷酗, 并對數(shù)據(jù)進(jìn)行校驗、轉(zhuǎn)換解析和初始化窟哺, 最終形成可以被虛擬機直接使...
    好好學(xué)習(xí)Sun閱讀 1,205評論 0 3
  • 代碼編譯的結(jié)果從本地機器碼轉(zhuǎn)變?yōu)樽止?jié)碼泻轰,是存儲格式發(fā)展的一小步,確實編譯語言發(fā)展的一大步且轨。 虛擬機把描述類的數(shù)據(jù)從...
    胡二囧閱讀 956評論 0 0
  • >少女眼中的世界. 刃起音落浮声,門開聲響。 聞聲扭頭與門外之人四目相對旋奢,認(rèn)出對方身份后先前的安逸心情不復(fù)存在...
    戴陌靜閱讀 907評論 0 2