java程序運行原理分析

什么是class文件

是jvm編譯java代碼后生成的字節(jié)碼文件硼一,包含java程序執(zhí)行的字節(jié)碼澄步;數(shù)據(jù)嚴格按照格式緊湊排列在class文件中的二進制流,中間無任何分隔符掖桦;文件開頭有一個0xcafebabe(16進制)特使的一個標志。


如何查看class文件內容夺颤?

javap -v Target.class

jvm運行時數(shù)據(jù)區(qū)

jvm運行時數(shù)據(jù)區(qū)分為線程共享部分和線程獨占部分痢缎。線程共享是指所有線程都能訪問這塊內存數(shù)據(jù),隨虛擬機或者GC而創(chuàng)建或者銷毀世澜,線程共享部分包括方法區(qū)独旷、堆內存;線程獨占是指每個線程都會有它自己的獨立空間寥裂,隨線程生命周期創(chuàng)建或者銷毀嵌洼,線程獨占部分包括虛擬機棧、本地方法棧封恰、程序計數(shù)器麻养。

方法區(qū):是JVM用來存儲加載的類信息、常量俭驮、靜態(tài)變量回溺、編譯后的代碼等數(shù)據(jù)春贸,是虛擬機規(guī)范中劃分的邏輯區(qū)域混萝,具體實現(xiàn)根據(jù)不同虛擬機來實現(xiàn)。

堆內存可細分為老年代萍恕、新生代(Eden逸嘀、From Survivor、To Survivor)

虛擬機棧:每個線程都在這個空間有一個私有的空間允粤,線程棧由多個棧幀組成崭倘;一個線程會執(zhí)行一個或多個方法、一個方法對應一個棧幀类垫。

棧幀內容包括局部變量表司光、操作數(shù)棧、動態(tài)鏈接悉患、方法返回地址残家、附加信息等。棧內存默認最大是1M售躁,超出則跑出StackOverflowError坞淮。

本地方法棧:和虛擬機棧功能類似,虛擬機棧是衛(wèi)虛擬機執(zhí)行JAV方法兒準備的陪捷,本地方法棧是為虛擬機使用native本地方法而準備的回窘。虛擬機規(guī)范沒有規(guī)定具體實現(xiàn),由不同的虛擬機廠商去實現(xiàn)市袖。

程序計數(shù)器:記錄當前線程執(zhí)行字節(jié)碼的位置啡直,存儲的是字節(jié)碼指令地址,如果執(zhí)行native方法,則計數(shù)器值為空付枫。

每個線程都在這個空間有一個私有的空間烹玉,占用內存空間很少。

CPU同一時間阐滩,只會執(zhí)行一條線程中的指令二打。JVM多線程會輪流切換并分配CPU執(zhí)行時間的方式。在線程切換后需要通過程序計數(shù)器來恢復正確的執(zhí)行位置掂榔。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(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
  • 正文 為了忘掉前任溶锭,我火速辦了婚禮宝恶,結果婚禮上,老公的妹妹穿的比我還像新娘暖途。我一直安慰自己卑惜,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布驻售。 她就那樣靜靜地躺著露久,像睡著了一般。 火紅的嫁衣襯著肌膚如雪欺栗。 梳的紋絲不亂的頭發(fā)上毫痕,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天征峦,我揣著相機與錄音,去河邊找鬼消请。 笑死栏笆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的臊泰。 我是一名探鬼主播蛉加,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缸逃!你這毒婦竟也來了针饥?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤需频,失蹤者是張志新(化名)和其女友劉穎丁眼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昭殉,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡苞七,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挪丢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹂风。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吃靠,靈堂內的尸體忽然破棺而出硫眨,到底是詐尸還是另有隱情足淆,我是刑警寧澤巢块,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站巧号,受9級特大地震影響族奢,放射性物質發(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