国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JVM-1 運(yùn)行時數(shù)據(jù)區(qū)域

kaka / 1835人閱讀

摘要:局部變量表所需內(nèi)存空間在編譯期確定,方法運(yùn)行期間,不改變局部變量表大小。位和占用兩個局部變量空間,其余類型占用一個空間。直接內(nèi)存不是虛擬機(jī)運(yùn)行時數(shù)據(jù)區(qū)的邏輯組成部分,中對象,作為直接內(nèi)存的引用進(jìn)行操作,減少和堆上來回復(fù)制數(shù)據(jù)。

虛擬機(jī)棧 JVM stack

線程私有

Java方法執(zhí)行的內(nèi)存模型,每個方法對應(yīng)棧幀stack frame,方法調(diào)用過程,對應(yīng)著入棧與出棧;

棧幀存儲,局部變量表,操作數(shù)棧,動態(tài)鏈接,方法出口等。

局部變量表: Java 8種基本類型,reference類型,returnAddress類型。

局部變量表所需內(nèi)存空間在編譯期確定,方法運(yùn)行期間,不改變局部變量表大小。

64位 long和double 占用兩個 局部變量空間slot,其余類型占用一個空間。

錯誤:

stackoverflow error, 線程請求棧超過VM允許范圍。

OutOfMemoryError, 棧動態(tài)擴(kuò)展失敗,無法申請到足夠內(nèi)存。

本地方法棧 NativeMethodStack

為Native方法服務(wù)

可以多種語言實(shí)現(xiàn)

StackOverflowError 和 OutOfMemoryError

堆 Heap

JVM 規(guī)范規(guī)定,Heap處于不連續(xù)的內(nèi)存空間中,只要邏輯上連續(xù)即可。

線程共享,JVM啟動時創(chuàng)建,對象實(shí)例和數(shù)組都在堆上分配。

多個線程私有的Heap區(qū)域, Thread Local Allocation Buffer (TLAB)

TLAB在Eden區(qū),目的,減少線程共享。

分為年輕代 Young Generation 和 老年代 Old Generation,比例 1:2;

年輕代分為 :Eden區(qū) 和 兩個Survivor區(qū), 比例: 8:1:1;

年輕代GC采用復(fù)制算法

老年代GC采用 mark sweep 和 mark compact

控制參數(shù): -Xms -Xmx

拋出 OutOfMemory Error

方法區(qū) Method Area

Java 7 永久代 Permanent Generation;

JVM規(guī)范描述的Heap的一個邏輯部分;

線程共享;

存儲VM 加載的類信息,常量,靜態(tài)變量。 即時編譯器編譯后的代碼等。

方法區(qū)主要回收 常量和無用的類。

Java 8 元空間 Metaspace 。

運(yùn)行時常量池

Java8 移到Heap中,

class 文件中 constant pool table;

存放 各種字面量和符號引用,具備動態(tài)性,申請不到空間會拋出 OutOfMemoryError,

參數(shù): -XX:MaxPermSize

String.intern() 可以將新的String常量放入池中。

直接內(nèi)存 Direct Memory

不是虛擬機(jī)運(yùn)行時數(shù)據(jù)區(qū)的邏輯組成部分,

NIO中 DirectByteBuffer對象, 作為直接內(nèi)存的引用進(jìn)行操作,減少Heap和Native堆上來回復(fù)制數(shù)據(jù)。

程序計數(shù)器 Program Counter Register

線程私有,

當(dāng)前線程執(zhí)行的字節(jié)碼的行號指示器,

無OutOfMemoryError的區(qū)域。

參考資料:

《深入理解Java虛擬機(jī)》

《Java性能權(quán)威指南》

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/76375.html

相關(guān)文章

  • 學(xué)習(xí)JVM是如何從入門到放棄的?

    摘要:而字節(jié)碼運(yùn)行在之上,所以不用關(guān)心字節(jié)碼是在哪個操作系統(tǒng)編譯的,只要符合規(guī)范,那么,這個字節(jié)碼文件就是可運(yùn)行的。好處防止內(nèi)存中出現(xiàn)多份同樣的字節(jié)碼安全性角度特別說明類加載器在成功加載某個類之后,會把得到的類的實(shí)例緩存起來。 前言 只有光頭才能變強(qiáng) JVM在準(zhǔn)備面試的時候就有看了,一直沒時間寫筆記。現(xiàn)在到了一家公司實(shí)習(xí),閑的時候就寫寫,刷刷JVM博客,刷刷電子書。 學(xué)習(xí)JVM的目的也很簡單...

    Joyven 評論0 收藏0
  • 同樣是做后端的,為什么你同學(xué)年薪80萬,你20多萬?

    摘要:然而偶爾的一次聚會,你聽說和自己一起出道的同學(xué)早已經(jīng)年薪萬,而自己卻囊中羞澀。這個時候,你可能會懷疑自己的能力,也痛恨為什么當(dāng)初自己沒有好好復(fù)習(xí)。 作為一個 Java 程序員,我們深知水平的深淺決定你的收入高低,月工資下到七八千,上到十幾萬都是很正常的事情。許多人的現(xiàn)狀是平時總是陷在業(yè)務(wù)開發(fā)...

    鄒強(qiáng) 評論0 收藏0
  • 麻了,都是科班出身的,學(xué)弟月薪卻是我的3倍。

    摘要:可現(xiàn)在五年過去了,他想跳槽卻鮮有人問津。最可氣的是比他晚一年畢業(yè)的學(xué)弟,勤勤懇懇在一家中型互聯(lián)網(wǎng)企業(yè)干了年,現(xiàn)在已經(jīng)跳槽到了阿里,月薪是我這個同學(xué)的倍。 我有個同學(xué)大學(xué)畢業(yè),因為卻少工作經(jīng)驗,又不愿意去正經(jīng)的互聯(lián)網(wǎng)企業(yè)做實(shí)習(xí)生,他嫌工資太低,于是進(jìn)了家外包公司,那時候感覺待遇還可以。可現(xiàn)在五...

    wangzy2019 評論0 收藏0
  • 作為一名Java程序員,因為偷偷接私活被...

    摘要:接私活對程序員這個圈子來說是一個既公開又隱私的話題,不說全部,應(yīng)該大多數(shù)程序員都有過想要接私活的想法,當(dāng)然,也有部分得道成仙的不主張接私活。 接私活 對程序員這個圈子來說是一個既公開又隱私的話題,不說全部,應(yīng)該大多數(shù)程序員都有過想要接私活的想法,當(dāng)然,也有部分得道成仙的不主張接私活。但是很少...

    Aomine 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<