3.1.1 JVM性能調(diào)優(yōu) - 類加載機制

首先復(fù)習(xí)了一下jvm運行時數(shù)據(jù)區(qū)

記憶那幅圖吧

  • 線程共享部分 堆內(nèi)存、方法區(qū)
  • 線程獨占部分 虛擬機棧场刑、本地方法棧辣之、程序計數(shù)器

1.類加載器

  • bootstrap加載器 基礎(chǔ)加載器 負(fù)責(zé)加載jre_home/jre/lib下的類
  • extendClassLoader 負(fù)責(zé)加載jre_home/jre/lib/ext下的類
  • appClassLoader 負(fù)責(zé)加載程序員自己編寫的各個java程序的類战得,具體就是加載各個java程序的"java.class.path"屬性 指定的路徑下的類喷斋,或者運行java命令式附帶的-cp參數(shù)指定的地址

2.查看類加載器

任何一個對象,都可以使用getClassLoader這個方法來查看到它對應(yīng)的類加載器茧彤,extendClassLoader或者appClassLoader或者自定義的ClassLoader骡显,如果是bootstrapLoader的話,那么輸出的是null,因為bootstrapLoader是由c/C++實現(xiàn)的惫谤,它并不是一個java類

3.JVM如何知道類在何方

  • String這種基礎(chǔ)類的話壁顶,就在環(huán)境變量jre_home下的jre/lib
  • jdk的其他類的話,就在環(huán)境變量jre_home下的jre/lib/ext
  • 用戶應(yīng)用程序的話溜歪,去讀取"java.class.path"這個屬性若专,獲取路徑getProperty("java.class.path")
  • ips命令
    ips命令可以看到本機有什么java進(jìn)程
  • jcmd命令
    jcmd pid VM.system_properties 可以看到某一個java線程的屬性,其中就包括"java.class.path"這個屬性

4.類不會重復(fù)加載

加載器實例+package+類名 可以唯一確定一個類蝴猪,jvm不會對同一個類進(jìn)行重復(fù)加載
驗證方法:寫一個while循環(huán)调衰,不停地用類類加載機制加載類,期間對源碼進(jìn)行修改拯腮,發(fā)現(xiàn)修改并不生效

5.卸載類

什么時候類會被卸載

要滿足2個條件

  1. 類的所有實例對象被GC
  2. 類的ClassLoader實例被GC

-verbose:class 參數(shù)窖式,可以輸出類加載和卸載日志
課后作業(yè):如何在idea設(shè)置VM_Option 和-verbose

6.雙親委派模型

記住那幅圖:appClassLoader蚁飒、extClassLoader动壤、bootStrapClassLoader由下至上排列,有一順時針的箭頭鏈接三個類加載器淮逻,向上是委派琼懊、向下是查詢
核心:父加載器無法執(zhí)行類加載任務(wù)時,才由自己完成

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爬早,一起剝皮案震驚了整個濱河市哼丈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筛严,老刑警劉巖醉旦,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異桨啃,居然都是意外死亡车胡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門照瘾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匈棘,“玉大人,你說我怎么就攤上這事析命≈魑溃” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵鹃愤,是天一觀的道長簇搅。 經(jīng)常有香客問我,道長软吐,這世上最難降的妖魔是什么瘩将? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上鸟蟹,老公的妹妹穿的比我還像新娘乌妙。我一直安慰自己,他們只是感情好建钥,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布藤韵。 她就那樣靜靜地躺著,像睡著了一般熊经。 火紅的嫁衣襯著肌膚如雪泽艘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天镐依,我揣著相機與錄音匹涮,去河邊找鬼。 笑死槐壳,一個胖子當(dāng)著我的面吹牛然低,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播务唐,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼雳攘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枫笛?” 一聲冷哼從身側(cè)響起吨灭,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刑巧,沒想到半個月后喧兄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡啊楚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年吠冤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片特幔。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡咨演,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚯斯,到底是詐尸還是另有隱情薄风,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布拍嵌,位于F島的核電站遭赂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏横辆。R本人自食惡果不足惜撇他,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧困肩,春花似錦划纽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至潭枣,卻和暖如春比默,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盆犁。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工命咐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谐岁。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓醋奠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翰铡。 傳聞我的和親對象是個殘疾皇子钝域,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 1讽坏、classLoader 類加載器锭魔,將class文件加載到JVM虛擬機內(nèi)存中,使得程序可以運行路呜。通常情況下迷捧,JV...
    helloWorld_1118閱讀 2,199評論 0 2
  • ClassLoader翻譯過來就是類加載器,普通的java開發(fā)者其實用到的不多胀葱,但對于某些框架開發(fā)者來說卻非常常見...
    時待吾閱讀 1,060評論 0 1
  • 0漠秋、前言 讀完本文,你將了解到: 一抵屿、為什么說Jabalpur語言是跨平臺的 二庆锦、Java虛擬機啟動、加載類過程分...
    vivi_wong閱讀 1,205評論 0 10
  • 轉(zhuǎn)發(fā):本篇文章已授權(quán)微信公眾號 guolin_blog (郭霖)獨家發(fā)布 ClassLoader翻譯過來就是類加載...
    尼爾君閱讀 530評論 0 1
  • 聲明:原創(chuàng)文章轧葛,轉(zhuǎn)載請注明出處搂抒。http://www.reibang.com/u/e02df63eaa87 1、什...
    唐影若凡閱讀 528評論 0 4