006-類加載器在Java中的角色是什么

海邊.jpg

本文首發(fā)于公眾號:javaadu

典型答案

類加載器屬于JVM的類加載子系統(tǒng)永高,常見的類加載器有:Bootstrap classloader、ExtClassloader对供、AppClassloader铺纽,還有用戶自定義的類加載器。Bootstrap classloader是C++編寫的啟動類加載器枚钓,負責加載java.lang.*開頭的類铅搓;ExtClassloader是擴展類加載器,負責加載JVM擴展類,比如swing系列搀捷、xml解析器等等狸吞,這些庫的的jar包位于JAVA_HOME/lib/ext目錄下。

類加載器負責將.class格式的字節(jié)碼文件或來自網(wǎng)絡上的字節(jié)碼流讀取到內(nèi)存中指煎。類加載的過程是按需加載的,因為Java是一門動態(tài)編譯語言便斥,所謂動態(tài)編譯語言指的是不需要在開始運行前就構(gòu)成一個完整的可執(zhí)行文件至壤。

  • C/C++屬于靜態(tài)編譯語言,需要將程序中所有的子模塊都打包在一起構(gòu)成一個可執(zhí)行文件枢纠。將不同模塊的代碼合并到一個可執(zhí)行文件的過程指的是鏈接像街。

  • Java代碼執(zhí)行的過程也跟C/C++不同,在Java中晋渺,源代碼會被javac編譯為.class文件镰绎,在被加載到JVM中之前都不會進行鏈接——也就是說,Java程序的鏈接是在JVM里運行時進行的木西。Java應用運行的時候畴栖,會按照需要加載對應的類——如果一個類依賴于另一個類,則在加載這個類之前要先加載它依賴的那個類(這個按需加載的過程就是動態(tài)編譯)八千。

問題分析

這個問題的關(guān)鍵點有二:(1)類加載的定義是什么吗讶;(2)類加載器的作用是什么燎猛。

如果能回答清楚這兩個點,面試官如果想考察你對JVM的理解的深度照皆,就會從這里開始重绷,展開進一步的追問,例如:(1)所謂的雙親委派機制是什么意思膜毁?(2)是否了解線程上下文加載器昭卓?(3)描述下一個類的加載過程;(4)一個類在被加載到JVM后瘟滨,還有機會被改變嗎候醒?(5)是否在生產(chǎn)中遇到過類加載相關(guān)的問題,是怎么排查室奏、分析和解決的火焰? 如果能夠在接下來的這幾個問題中侃侃而談,那么說明候選人對類加載器這塊的知識的掌握深度是過關(guān)的胧沫。

知識點梳理

關(guān)于類加載器昌简,有幾個關(guān)鍵的知識點需要掌握(在此不做展開,有一篇相關(guān)的文章正在過程中绒怨,大家敬請期待)纯赎。

  1. 類加載的過程

  2. 類加載器的類型

  3. 雙親委派機制

  4. 線程上下文加載器(打破雙親委派機制)

  5. 類加載在java agent中的應用

  6. osgi和模塊化

參考資料

  1. https://stackoverflow.com/questions/2424604/what-is-a-java-classloader

  2. https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-5.html

  3. 《深入理解JVM虛擬機》


本號專注于后端技術(shù)、JVM問題排查和優(yōu)化南蹂、Java面試題犬金、個人成長和自我管理等主題,為讀者提供一線開發(fā)者的工作和成長經(jīng)驗六剥,期待你能在這里有所收獲晚顷。
javaadu
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市疗疟,隨后出現(xiàn)的幾起案子该默,更是在濱河造成了極大的恐慌,老刑警劉巖策彤,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栓袖,死亡現(xiàn)場離奇詭異,居然都是意外死亡店诗,警方通過查閱死者的電腦和手機裹刮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庞瘸,“玉大人捧弃,你說我怎么就攤上這事〔聊遥” “怎么了塔橡?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵梅割,是天一觀的道長。 經(jīng)常有香客問我葛家,道長户辞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任癞谒,我火速辦了婚禮底燎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘弹砚。我一直安慰自己双仍,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布桌吃。 她就那樣靜靜地躺著朱沃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茅诱。 梳的紋絲不亂的頭發(fā)上逗物,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音瑟俭,去河邊找鬼翎卓。 笑死,一個胖子當著我的面吹牛摆寄,可吹牛的內(nèi)容都是我干的失暴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼微饥,長吁一口氣:“原來是場噩夢啊……” “哼逗扒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起欠橘,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤缴阎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后简软,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡述暂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年痹升,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畦韭。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡疼蛾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艺配,到底是詐尸還是另有隱情察郁,我是刑警寧澤衍慎,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站皮钠,受9級特大地震影響稳捆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜麦轰,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一乔夯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧款侵,春花似錦末荐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妹笆,卻和暖如春块请,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晾浴。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工负乡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脊凰。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓抖棘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親狸涌。 傳聞我的和親對象是個殘疾皇子切省,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354