深入理解Java虛擬機 讀書筆記

走進Java


JDK

JDK(Java Development Kit)是用于支持Java程序開發(fā)的最小環(huán)境讹剔,包括 Java程序設計語言沙郭、Java虛擬機、Java API類庫柒室。

JRE

JRE(Java Runtime Enviroment)是支持Java程序運行的標準環(huán)境,包括Java SE API子集和Java虛擬機仙辟。

Java內(nèi)存區(qū)域劃分


程序計數(shù)器(Program Counter Register) 是一塊較小的內(nèi)存空間,它可以看做是當前線程所執(zhí)行的字節(jié)碼的行號指示器鳄梅。每個線程有一個私有的程序計數(shù)器叠国,所以屬于線程私有的內(nèi)存。

Java虛擬機棧(Java Virtual Machine Stack )也是線程私有的戴尸,他的生命周期與線程相同粟焊。每個方法在執(zhí)行的時候都會創(chuàng)建一個棧幀(Stack Frame)用于儲存局部變量表、操作數(shù)棧孙蒙、動態(tài)鏈接项棠、方法出口等信息。一個方法的執(zhí)行到結(jié)束马篮,都對應著一個棧幀在虛擬機棧的入棧和出棧沾乘。

本地方法棧 與虛擬機棧相似怜奖,只是對應于Native方法浑测。

方法區(qū)(Method Area) 是線程共享區(qū)域,它用來儲存已被虛擬機加載的類信息、常量迁央、靜態(tài)變量掷匠、即時編譯器編譯后的代碼等數(shù)據(jù)。

用來存放Java對象

垃圾回收與內(nèi)存分配策略


對象存活判定算法

引用記數(shù)算法不能解決循環(huán)引用的問題岖圈。Java采用可達性分析算法(Reachablity Analysis)來判定對象是否存活讹语。
可作為GC Roots的對象包括下面幾種:

  • 虛擬機棧中引用的對象
  • 方法區(qū)中靜態(tài)屬性引用的對象
  • 方法區(qū)中常量引用的對象
  • 本地方法棧中JNI引用的對象
垃圾回收算法
  • 標記-清理算法(Mark-Sweep)
    效率問題和內(nèi)存碎片問題
  • 復制算法
    不會有內(nèi)存碎片,只用對半個區(qū)進行回收蜂科,但內(nèi)存縮小到一半顽决。商業(yè)虛擬機大部分采用這種算法。一個Eden兩個Survivor导匣,大小8:1才菠。缺點,老年代浪費效率贡定。
  • 標記-整理算法(Mark-Compact)
    對于老年代比較合適赋访,只需移動部分存活對象填補內(nèi)存空缺。
垃圾收集器

G1(Garbage-First)收集器是當今技術(shù)發(fā)展的最前沿成果之一缓待。它是一款面向服務器應用的垃圾收集器蚓耽。他的特點如下:

  • 并行與并發(fā)
    可利用多CPU、多核環(huán)境下的硬件優(yōu)勢旋炒,使用多個CPU縮短Stop-the-world停頓的時間步悠。
  • 分代收集
  • 空間整合
  • 可預測的停頓
內(nèi)存分配策略
  • 對象優(yōu)先在Eden分配
  • 大對象直接進入老年代
  • 長期存活的對象將進入老年代
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市国葬,隨后出現(xiàn)的幾起案子贤徒,更是在濱河造成了極大的恐慌,老刑警劉巖汇四,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件接奈,死亡現(xiàn)場離奇詭異,居然都是意外死亡通孽,警方通過查閱死者的電腦和手機序宦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來背苦,“玉大人互捌,你說我怎么就攤上這事⌒屑粒” “怎么了秕噪?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長厚宰。 經(jīng)常有香客問我腌巾,道長遂填,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任吓坚,我火速辦了婚禮礁击,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘更耻。我一直安慰自己,他們只是感情好目胡,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著巨双,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慢宗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音蔬墩,去河邊找鬼。 笑死,一個胖子當著我的面吹牛岸夯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旅赢,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼僵控!你這毒婦竟也來了报破?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤帆疟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后踪宠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體自赔,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年柳琢,在試婚紗的時候發(fā)現(xiàn)自己被綠了绍妨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片润脸。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖他去,靈堂內(nèi)的尸體忽然破棺而出毙驯,到底是詐尸還是另有隱情,我是刑警寧澤灾测,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布爆价,位于F島的核電站,受9級特大地震影響媳搪,放射性物質(zhì)發(fā)生泄漏铭段。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一秦爆、第九天 我趴在偏房一處隱蔽的房頂上張望序愚。 院中可真熱鬧,春花似錦等限、人聲如沸爸吮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拗胜。三九已至,卻和暖如春怒允,著一層夾襖步出監(jiān)牢的瞬間埂软,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工纫事, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留勘畔,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓丽惶,卻偏偏與公主長得像炫七,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子钾唬,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

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