JVM

JVM:Java Virtual Machine即java虛擬機(jī)
虛擬機(jī):指通過(guò)軟件模擬的具有完整硬件系統(tǒng)功能的陪蜻、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)

Java虛擬機(jī)詳解02----JVM內(nèi)存結(jié)構(gòu)

Java中的內(nèi)存分配

java程序在運(yùn)行時(shí)募闲,需要在內(nèi)存中的分配空間计技。為了提高運(yùn)算效率,就對(duì)數(shù)據(jù)進(jìn)行了不同空間的劃分扛邑,因?yàn)槊恳黄瑓^(qū)域都有特定的處理數(shù)據(jù)方式和內(nèi)存管理方式摄咆。
具體劃分為如下5個(gè)內(nèi)存空間

  • :存放局部變量
  • :存放所有new出來(lái)的東西
  • 方法區(qū):被虛擬機(jī)加載的類(lèi)信息、常量导街、靜態(tài)常量等
  • 程序計(jì)數(shù)器(和系統(tǒng)相關(guān))
  • 本地方法棧

堆內(nèi)存:

和程序開(kāi)發(fā)密切相關(guān)
應(yīng)用系統(tǒng)對(duì)象都保存在Java堆中
所有線程共享java堆
對(duì)分代GC來(lái)說(shuō),堆也是分代的
gc管理的主要區(qū)域

棧內(nèi)存:

線程私有纤子,生命周期和線程相同
棧由一系列幀組成(因此java棧也叫做幀棧)
幀保存一個(gè)方法的局部變量搬瑰、操作數(shù)棧、常量池指針
每一次方法調(diào)用創(chuàng)建一個(gè)幀计福,并壓棧

Java虛擬機(jī)詳解04----GC算法和種類(lèi)【重要】

  • 引用計(jì)數(shù)算法(老牌垃圾回收算法跌捆,無(wú)法處理循環(huán)引用徽职,沒(méi)有被java采納)
  • 根搜索算法(在根搜索算法基礎(chǔ)上象颖,主要有下面三種)
    • 標(biāo)記清除算法
    • 復(fù)制算法(新生代的GC)
    • 標(biāo)記整理算法(老年代的GC)
  • 分代收集算法(新生代的gc+老年代的gc)
  • 根據(jù)對(duì)象的存貨周期的不同將內(nèi)存劃分為幾塊。一般是把jva堆分為新生代和老年代:短命對(duì)象為新生代姆钉,長(zhǎng)命對(duì)象為老年代
  • 少量對(duì)象存活说订,適合復(fù)制算法:在新生代中,每次gc都發(fā)現(xiàn)有大批對(duì)象死去潮瓶,只有少量存活陶冷,那就選用復(fù)制算法,只需要付出少量存活對(duì)象的復(fù)制成本就可以完成gc
  • 大量對(duì)象存活毯辅,適合用標(biāo)記清理/標(biāo)記整理:在老年代中埂伦,因?yàn)閷?duì)象存活率高、沒(méi)有額外空間對(duì)他進(jìn)行分配擔(dān)保思恐,就必須使用標(biāo)記清理/標(biāo)記整理算法進(jìn)行g(shù)c
    老年代的對(duì)象中沾谜,有一小部分是因?yàn)樵谛律厥諘r(shí)膊毁,老年代做擔(dān)保進(jìn)來(lái)的對(duì)象;絕大部分對(duì)象是因?yàn)楹芏啻蝕c都沒(méi)有被回收掉進(jìn)入老年代

Java虛擬機(jī)詳解----JVM常見(jiàn)問(wèn)題總結(jié)

類(lèi)加載過(guò)程

  1. 加載:將類(lèi)的class文件讀入內(nèi)存基跑,并創(chuàng)建java.lang.Class對(duì)象
  2. 鏈接
  • 驗(yàn)證:文件格式婚温、語(yǔ)法語(yǔ)義驗(yàn)證等
  • 準(zhǔn)備:為static修飾的靜態(tài)域默認(rèn)初始化,并在方法區(qū)分配內(nèi)存空間
  • 解析:將符號(hào)引用替換為直接引用
  1. (顯示)初始化
    以下幾種情況中媳否,會(huì)執(zhí)行初始化過(guò)程:
  • 創(chuàng)建類(lèi)的實(shí)例
  • 訪問(wèn)類(lèi)或接口的靜態(tài)變量(final static修飾的常量不會(huì)對(duì)類(lèi)進(jìn)行顯示初始化栅螟。static final修改的變量則會(huì)做顯示初始化)
  • 調(diào)用類(lèi)的靜態(tài)方法
  • 反射
  • 初始化類(lèi)的子類(lèi)(子類(lèi)初始化問(wèn)題:滿足主動(dòng)調(diào)用,即父類(lèi)訪問(wèn)子類(lèi)中的靜態(tài)變量篱竭、方法力图,子類(lèi)才會(huì)初始化,掺逼,否則僅父類(lèi)初始化)
  • java虛擬器啟動(dòng)時(shí)被表明為啟動(dòng)類(lèi)的類(lèi)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搪哪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坪圾,更是在濱河造成了極大的恐慌晓折,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兽泄,死亡現(xiàn)場(chǎng)離奇詭異漓概,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)病梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)胃珍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜓陌,你說(shuō)我怎么就攤上這事觅彰。” “怎么了钮热?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵填抬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我隧期,道長(zhǎng)飒责,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任仆潮,我火速辦了婚禮宏蛉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘性置。我一直安慰自己拾并,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著嗅义,像睡著了一般个榕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芥喇,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天西采,我揣著相機(jī)與錄音,去河邊找鬼继控。 笑死械馆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的武通。 我是一名探鬼主播霹崎,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼冶忱!你這毒婦竟也來(lái)了尾菇?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤囚枪,失蹤者是張志新(化名)和其女友劉穎派诬,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體链沼,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡默赂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了括勺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缆八。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疾捍,靈堂內(nèi)的尸體忽然破棺而出奈辰,到底是詐尸還是另有隱情,我是刑警寧澤乱豆,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布奖恰,位于F島的核電站,受9級(jí)特大地震影響咙鞍,放射性物質(zhì)發(fā)生泄漏房官。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一续滋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧孵奶,春花似錦疲酌、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)湿颅。三九已至,卻和暖如春粥诫,著一層夾襖步出監(jiān)牢的瞬間油航,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工怀浆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谊囚,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓执赡,卻偏偏與公主長(zhǎng)得像镰踏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子沙合,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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

  • 這篇文章是我之前翻閱了不少的書(shū)籍以及從網(wǎng)絡(luò)上收集的一些資料的整理奠伪,因此不免有一些不準(zhǔn)確的地方,同時(shí)不同JDK版本的...
    高廣超閱讀 15,565評(píng)論 3 83
  • JVM內(nèi)存模型Java虛擬機(jī)(Java Virtual Machine=JVM)的內(nèi)存空間分為五個(gè)部分首懈,分別是: ...
    光劍書(shū)架上的書(shū)閱讀 2,493評(píng)論 2 26
  • 原文閱讀 前言 這段時(shí)間懈怠了绊率,罪過(guò)! 最近看到有同事也開(kāi)始用上了微信公眾號(hào)寫(xiě)博客了究履,挺好的~給他們點(diǎn)贊即舌,這博客我...
    碼農(nóng)戲碼閱讀 5,952評(píng)論 2 31
  • JVM架構(gòu) 當(dāng)一個(gè)程序啟動(dòng)之前,它的class會(huì)被類(lèi)裝載器裝入方法區(qū)(Permanent區(qū))挎袜,執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,650評(píng)論 0 7
  • 導(dǎo)語(yǔ):有些人很喜歡運(yùn)動(dòng)后大汗淋漓的酣暢感覺(jué)盯仪,他們認(rèn)為多運(yùn)動(dòng)紊搪、多出汗能讓身體的毒素排出去。那么全景,不讓身體出汗和多出汗...
    GabrielSu閱讀 573評(píng)論 0 0