JAVA8內存模型

JAVA8內存模型

對于Java8, HotSpots取消了永久代君账,那么是不是也就沒有方法區(qū)了呢叉瘩?當然不是,方法區(qū)是一個規(guī)范叨吮,規(guī)范沒變,它就一直在瞬矩。那么取代永久代的就是元空間茶鉴。它可永久代有什么不同的?存儲位置不同景用,永久代物理是是堆的一部分涵叮,和新生代,老年代地址是連續(xù)的伞插,而元空間屬于本地內存割粮;存儲內容不同,元空間存儲類的元信息媚污,靜態(tài)變量和常量池等并入堆中舀瓢。相當于永久代的數(shù)據被分到了堆和元空間中。

jvm_java8_01.png
  • 程序計數(shù)器:它的生命周期與線程相同耗美,線程私有京髓。較小的內存區(qū)域航缀,用以完成分支、循環(huán)堰怨、跳轉芥玉、異常處理、線程恢復等基礎功能备图。不會發(fā)生內存溢出(OutOfMemory=OOM)錯誤灿巧。

  • 虛擬機棧:它的生命周期與線程相同,線程私有揽涮。虛擬機棧中存儲了方法執(zhí)行時相關信息抠藕,每個方法在調用時都會在虛擬機棧中創(chuàng)建一個方法幀,方法幀中包含了局部變量绞吁,參數(shù)幢痘,運行中間結果等信息。幀數(shù)超過限制(-Xss)家破,就會出現(xiàn)StackOverFlow(=SOF)錯誤颜说。另外超過線程分配的內存大小,也會報OOM錯誤汰聋。

  • 本地方法棧:它的生命周期與線程相同门粪,線程私有∨肜В基本同虛擬機棧玄妈。存放的是native方法幀∷杳罚可出現(xiàn)SOF和OOM錯誤拟蜻。

  • 元空間(MetaSpace):所有線程共享。存放class加載相關信息枯饿。

  • 堆:所有線程共享酝锅。存放new出來的數(shù)組和對象數(shù)據,以及類的靜態(tài)變量奢方。同時搔扁,包含一個常量池(final),是由1.7以前版本的方法區(qū)轉移過來的蟋字。

示例:

jvm_java8_02.png
  • str1==str2 指向同一個堆對象稿蹲,同時創(chuàng)建了一個常量池引用。
  • str3 創(chuàng)建了3個堆對象鹊奖,只創(chuàng)建了一個常量池引用苛聘。
  • str4 創(chuàng)建了2個堆對象,其中有個對象的value引用另一個的value地址,并未創(chuàng)建常量池引用设哗。

另外補充幾點關于String的總結:

  • 字面量方式聲明璧尸,查找常量池有則返回引用。否則熬拒,堆里生成對象,同時在在常量池生成引用垫竞。如:String s = "xyz";
  • 字面量相+澎粟,根據+的結果查找常量池有則返回引用,否則欢瞪,堆里生成對象活烙,同時在常量池生成引用。如:String s = "a"+"b"; 常量池查找“ab”遣鼓。最多生成三個對象啸盏。
  • 字符串相+,如果有一個不是字面量骑祟,則必在堆里生成一個新對象回懦,常量池不生成引用。如:String s=s1+"a";
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末次企,一起剝皮案震驚了整個濱河市怯晕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缸棵,老刑警劉巖舟茶,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異堵第,居然都是意外死亡吧凉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門踏志,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阀捅,“玉大人,你說我怎么就攤上這事狰贯∫泊辏” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵涵紊,是天一觀的道長傍妒。 經常有香客問我,道長摸柄,這世上最難降的妖魔是什么颤练? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮驱负,結果婚禮上嗦玖,老公的妹妹穿的比我還像新娘患雇。我一直安慰自己,他們只是感情好宇挫,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布苛吱。 她就那樣靜靜地躺著,像睡著了一般器瘪。 火紅的嫁衣襯著肌膚如雪翠储。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天橡疼,我揣著相機與錄音援所,去河邊找鬼。 笑死欣除,一個胖子當著我的面吹牛住拭,可吹牛的內容都是我干的。 我是一名探鬼主播历帚,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼滔岳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了抹缕?” 一聲冷哼從身側響起澈蟆,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卓研,沒想到半個月后趴俘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡奏赘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年寥闪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片磨淌。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡疲憋,死狀恐怖,靈堂內的尸體忽然破棺而出梁只,到底是詐尸還是另有隱情缚柳,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布搪锣,位于F島的核電站秋忙,受9級特大地震影響,放射性物質發(fā)生泄漏构舟。R本人自食惡果不足惜灰追,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弹澎,春花似錦朴下、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至佩迟,卻和暖如春溃肪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背音五。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留羔沙,地道東北人躺涝。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像扼雏,于是被迫代替她去往敵國和親坚嗜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,097評論 1 32
  • 根據 JVM 規(guī)范诗充,JVM 內存共分為虛擬機棧苍蔬、堆、方法區(qū)蝴蜓、程序計數(shù)器碟绑、本地方法棧五個部分。 1茎匠、虛擬機棧:每個線...
    captain_fu閱讀 5,359評論 1 6
  • JVM內存模型Java虛擬機(Java Virtual Machine=JVM)的內存空間分為五個部分格仲,分別是: ...
    光劍書架上的書閱讀 2,501評論 2 26
  • 文:冬瓜媽媽 01 因為參加“城市的風很大”的征文,很多簡友發(fā)簡信說诵冒,你好有毅力啊凯肋,竟然一天睡三四個小時。太厲害了...
    夢貓人讀書閱讀 5,458評論 60 43
  • 今天汽馋,剛好是開啟簡書的第21天侮东,已經連續(xù)日更了二十篇,不過都只是用流水賬記錄平時思考的點滴豹芯,真正能和寫作沾點...
    菜心昕閱讀 384評論 0 1