類的加載過程

今天遇到一個面試題缝呕,類的加載過程誓竿,感覺自己回答的一團糟贺辰,完全沒有概念煎殷,那我今天還是一定要把這個整理一下

看下流程圖(結(jié)構(gòu)化思維)

5個大階段:

加載--》鏈接--》初始化--》使用--》卸載

7個小階段:(鏈接1拆3)

加載--》驗證--》準備--》解析--》初始化--》使用--》卸載

①加載

JVM把class字節(jié)碼加載到內(nèi)存蔼卡,將這些字節(jié)碼轉(zhuǎn)化成方法區(qū)中的運行時數(shù)據(jù)(靜態(tài)變量喊崖,靜態(tài)代碼塊,常量池等)

在堆中生產(chǎn)一個class的對象雇逞,通過反射機制荤懂,通過這個對象可以訪問到方法區(qū)對應的數(shù)據(jù)

②鏈接(驗證,準備塘砸,解析)

驗證:確保加載的類信息符合jvm規(guī)范节仿,沒有安全方面的問題

準備:為類變量(static)生成內(nèi)存空間,并設(shè)置初始值(只是設(shè)置初始值掉蔬,區(qū)別一下初始化階段做的事)

解析:常量池中的符號引用改為直接引用(地址引用)廊宪,主要包括四種類型引用的解析。類或接口的解析女轿、字段解析箭启、方法解析、接口方法解析蛉迹。

解析階段是虛擬機將常量池內(nèi)的符號引用替換為直接引用的過程傅寡。

二者之間的關(guān)聯(lián)如下

符號引用(Symbolic Reference):符號引用以一組符號來描述所引用的目標,符號可以是任何形式的字面量北救,只要使用時能無歧義的定位到目標就行荐操,符號引用與虛擬機的內(nèi)存布局沒有關(guān)系,引用的目標不一定需要已經(jīng)加載到內(nèi)存中珍策。種種虛擬機的內(nèi)存布局可以都不相同淀零。但是他們能接受的符號引用必須是一致的。符號引用的字面量形式明確定義在JAVA虛擬機規(guī)范的Class文件中膛壹。

直接引用(Direct Reference):直接引用是直接指向目標的指針驾中、相對偏移量或是一個能間接定位到目標的句柄。直接引用是和虛擬機實現(xiàn)的內(nèi)存布局相關(guān)的模聋,同一個符號引用在不同虛擬機實例上翻譯出來的直接引用一般不會相同肩民,如果有了直接引用,那引用的目標必定在內(nèi)存中存在链方。

③初始化

執(zhí)行類構(gòu)造器<clinit>的過程持痰。

類構(gòu)造器<clinit>方法是由編譯器自動收集類變量的賦值動作和靜態(tài)語句塊中的語句合并生成的代碼塊。

注意:

a.如果發(fā)現(xiàn)父類沒有初始化祟蚀,先初始化父類

b.虛擬機會保障<clinit>在多線程下正確的加鎖和同步

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末工窍,一起剝皮案震驚了整個濱河市割卖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌患雏,老刑警劉巖鹏溯,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淹仑,居然都是意外死亡丙挽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門匀借,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜阐,“玉大人,你說我怎么就攤上這事吓肋〉试梗” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵是鬼,是天一觀的道長猿棉。 經(jīng)常有香客問我,道長屑咳,這世上最難降的妖魔是什么萨赁? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮兆龙,結(jié)果婚禮上杖爽,老公的妹妹穿的比我還像新娘。我一直安慰自己紫皇,他們只是感情好慰安,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著聪铺,像睡著了一般化焕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上铃剔,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天撒桨,我揣著相機與錄音,去河邊找鬼键兜。 笑死凤类,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的普气。 我是一名探鬼主播谜疤,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了夷磕?” 一聲冷哼從身側(cè)響起履肃,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坐桩,沒想到半個月后尺棋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡撕攒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年陡鹃,在試婚紗的時候發(fā)現(xiàn)自己被綠了烘浦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抖坪。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖闷叉,靈堂內(nèi)的尸體忽然破棺而出擦俐,到底是詐尸還是另有隱情,我是刑警寧澤握侧,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布蚯瞧,位于F島的核電站,受9級特大地震影響品擎,放射性物質(zhì)發(fā)生泄漏埋合。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一萄传、第九天 我趴在偏房一處隱蔽的房頂上張望甚颂。 院中可真熱鬧,春花似錦秀菱、人聲如沸振诬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赶么。三九已至,卻和暖如春脊串,著一層夾襖步出監(jiān)牢的瞬間辫呻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工琼锋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留印屁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓斩例,卻偏偏與公主長得像雄人,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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