国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

jvm對(duì)象內(nèi)存劃分

這篇具有很好參考價(jià)值的文章主要介紹了jvm對(duì)象內(nèi)存劃分。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

額外概念了解

jvm內(nèi)存空間是邏輯上連續(xù)的虛擬地址空間(虛擬內(nèi)存中的概念)映射到物理內(nèi)存(不一定連續(xù)),物理內(nèi)存不足時(shí)還會(huì)將物理內(nèi)存中的數(shù)據(jù)交換到swap(磁盤(pán)的一塊區(qū)域)。這塊水有點(diǎn)深,查閱資料做了個(gè)個(gè)人的總結(jié)。

內(nèi)存劃分,有指針碰撞空閑列表這兩種劃分方式:

1、指針碰撞

當(dāng)內(nèi)存區(qū)域規(guī)整排列,也就是說(shuō)已用內(nèi)存放在一邊,空閑內(nèi)存放在一邊,中間用指針作為分界點(diǎn),在給新的對(duì)象分配內(nèi)存時(shí),可以將指針向空閑端移動(dòng)對(duì)象大小的距離。碰撞是由于指多線程訪問(wèn)時(shí),因內(nèi)存共享,會(huì)存在內(nèi)存沖突(指針碰撞)的情況,當(dāng)然可以使用CAS和TLAB兩種方式解決

2、空閑列表

當(dāng)內(nèi)存區(qū)域不規(guī)整排列,已用內(nèi)存和空閑內(nèi)存交錯(cuò),此時(shí)無(wú)法通過(guò)指針碰撞劃分內(nèi)存,jvm通過(guò)維護(hù)一個(gè)空閑列表,用來(lái)記錄空閑內(nèi)存區(qū)間,新對(duì)象內(nèi)存分配時(shí),找到一塊足夠大的內(nèi)存空間去分配,并更新空閑列表。

3、那么指針碰撞和空閑列表的使用時(shí)機(jī)是什么,或者說(shuō)什么時(shí)候內(nèi)存區(qū)域規(guī)整或者不規(guī)整呢?

不同GC垃圾回收器有不同垃圾回收算法,對(duì)于標(biāo)記-整理算法,內(nèi)存區(qū)域是規(guī)整的。而標(biāo)記-清除算法,內(nèi)存區(qū)域是不規(guī)整的。因此也驗(yàn)證了為何標(biāo)記清除算法會(huì)產(chǎn)生內(nèi)存碎片的問(wèn)題。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732517.html

jmm內(nèi)存模型說(shuō)明

jmm內(nèi)存模型中有工作內(nèi)存(本地內(nèi)存)和主內(nèi)存兩個(gè)概念

  • 工作內(nèi)存是一個(gè)抽象概念,由每個(gè)線程獨(dú)享,實(shí)際指的是cpu寄存器與緩存,并不是真正的內(nèi)存條中的內(nèi)存。線程棧和棧幀屬于工作內(nèi)存的概念范疇。
  • 主內(nèi)存區(qū)域被多線程共享,是真正的內(nèi)存條中的內(nèi)存,屬于主內(nèi)存概念范疇。
  • 線程對(duì)變量的操作在工作內(nèi)存完成再寫(xiě)入到主內(nèi)存中
  • 實(shí)例對(duì)象的成員變量無(wú)論是基礎(chǔ)類(lèi)型還是引用類(lèi)型都是存儲(chǔ)在堆區(qū)
  • 實(shí)例對(duì)象的成員方法中的基礎(chǔ)變量存儲(chǔ)在棧幀中,引用類(lèi)型存儲(chǔ)在堆中
  • 實(shí)例對(duì)象的靜態(tài)變量存儲(chǔ)在堆中,類(lèi)本身信息存儲(chǔ)在主內(nèi)存中(元空間)

到了這里,關(guān)于jvm對(duì)象內(nèi)存劃分的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 四、JVM-對(duì)象內(nèi)存模型

    四、JVM-對(duì)象內(nèi)存模型

    一個(gè)Java對(duì)象在內(nèi)存中包括3個(gè)部分:對(duì)象頭、實(shí)例數(shù)據(jù)和對(duì)齊填充 數(shù)據(jù) 內(nèi)存 – CPU 寄存器 -127 補(bǔ)碼 10000001 - 11111111 32位的處理器 一次能夠去處理32個(gè)二進(jìn)制位 4字節(jié)的數(shù)據(jù) 64位操作系統(tǒng) 8字節(jié) 2的64次方的尋址空間 指針壓縮技術(shù) JDK1.6出現(xiàn)的 開(kāi)啟了指針壓縮 什么時(shí)候指針壓縮會(huì)

    2024年02月14日
    瀏覽(19)
  • JVM 給對(duì)象分配內(nèi)存空間

    指針碰撞 空閑列表 TLAB 為對(duì)象分配空間的任務(wù)實(shí)際上便等同于把一塊確定大小的內(nèi)存塊從Java堆中劃分出來(lái)。 指針碰撞:(Bump The Pointer) 堆的內(nèi)存是絕對(duì)規(guī)整的,內(nèi)存主要分為兩部分,所有使用過(guò)的內(nèi)存被放在一邊,空閑的內(nèi)存被放在另一邊,中間放著一個(gè)指針作為分界點(diǎn)

    2024年02月11日
    瀏覽(20)
  • JVM面試題-JVM對(duì)象的創(chuàng)建過(guò)程、內(nèi)存分配、內(nèi)存布局、訪問(wèn)定位等問(wèn)題詳解

    JVM面試題-JVM對(duì)象的創(chuàng)建過(guò)程、內(nèi)存分配、內(nèi)存布局、訪問(wèn)定位等問(wèn)題詳解

    內(nèi)存分配的兩種方式 指針碰撞 適用場(chǎng)合:堆內(nèi)存 規(guī)整 (即沒(méi)有內(nèi)存碎片)的情況下。 原理:用過(guò)的內(nèi)存全部整合到一邊,沒(méi)有用過(guò)的內(nèi)存放在另一邊,中間有一個(gè)分界指針,只需要向著沒(méi)用過(guò)的內(nèi)存方向?qū)⒃撝羔樢苿?dòng)對(duì)象內(nèi)存大小位置即可。 使用該分配方式的GC收集器:

    2024年02月08日
    瀏覽(19)
  • jvm對(duì)象創(chuàng)建和內(nèi)存分配優(yōu)化

    jvm對(duì)象創(chuàng)建和內(nèi)存分配優(yōu)化

    1、類(lèi)加載檢測(cè) 虛擬機(jī)遇到一條new指令時(shí),首先將去檢查這個(gè)指令的參數(shù)是否能在常量池中定位到一個(gè)類(lèi)的符號(hào)引用,并且檢查這個(gè)符號(hào)引用代表的類(lèi)是否是否已被加載、解析和初始化過(guò)。如果沒(méi)有,那必須先執(zhí)行相應(yīng)的類(lèi)加載過(guò)程。 new指令對(duì)應(yīng)語(yǔ)言層面講是,new、對(duì)

    2024年02月13日
    瀏覽(33)
  • JVM—對(duì)象的創(chuàng)建流程與內(nèi)存分配

    JVM—對(duì)象的創(chuàng)建流程與內(nèi)存分配

    對(duì)象創(chuàng)建的流程圖如下: 內(nèi)存分配的方式有兩種: 指針碰撞(Bump the Pointer) 空閑列表(Free List) 分配方式 說(shuō)明 收集器 指針碰撞(Bump the Pointer) 內(nèi)存地址是連續(xù)的(新生代) Serial和ParNew收集器 空閑列表(Free List) 內(nèi)存地址不連續(xù)(老年代) CMS收集器和Mark-Sweep收集器

    2024年04月10日
    瀏覽(30)
  • 06-JVM對(duì)象內(nèi)存回收機(jī)制深度剖析

    06-JVM對(duì)象內(nèi)存回收機(jī)制深度剖析

    上一篇:05-JVM內(nèi)存分配機(jī)制深度剖析 堆中幾乎放著所有的對(duì)象實(shí)例,對(duì)堆垃圾回收前的第一步就是要判斷哪些對(duì)象已經(jīng)死亡( 即不能再被任何途徑使用的對(duì)象 )。 給對(duì)象中添加一個(gè)引用計(jì)數(shù)器,每當(dāng)有一個(gè)地方引用它,計(jì)數(shù)器就加1;當(dāng)引用失效,計(jì)數(shù)器就減1;任何時(shí)候計(jì)

    2024年02月09日
    瀏覽(22)
  • JVM 內(nèi)存大對(duì)象監(jiān)控和優(yōu)化實(shí)踐

    JVM 內(nèi)存大對(duì)象監(jiān)控和優(yōu)化實(shí)踐

    作者:vivo 互聯(lián)網(wǎng)服務(wù)器團(tuán)隊(duì) - Liu Zhen、Ye Wenhao 服務(wù)器內(nèi)存問(wèn)題是影響應(yīng)用程序性能和穩(wěn)定性的重要因素之一,需要及時(shí)排查和優(yōu)化。本文介紹了某核心服務(wù)內(nèi)存問(wèn)題排查與解決過(guò)程。首先在JVM與大對(duì)象優(yōu)化上進(jìn)行了有效的實(shí)踐,其次在故障轉(zhuǎn)移與大對(duì)象監(jiān)控上提出了可靠的

    2024年02月10日
    瀏覽(22)
  • JVM運(yùn)行時(shí)區(qū)域——對(duì)象創(chuàng)建內(nèi)存分配過(guò)程

    JVM運(yùn)行時(shí)區(qū)域——對(duì)象創(chuàng)建內(nèi)存分配過(guò)程

    ????????新創(chuàng)建的對(duì)象 , 都存放在伊甸園區(qū)域 ,當(dāng)垃圾回收時(shí),將伊甸園區(qū)域的垃圾數(shù)據(jù)銷(xiāo)毀,然后將存活的對(duì)象轉(zhuǎn)移到幸存者0區(qū)域,之后創(chuàng)建的新的對(duì)象還是存放在伊甸園區(qū)域,等到再次垃圾回收后,將伊甸園區(qū)域和幸存者0區(qū)域中存活的對(duì)象一起轉(zhuǎn)移到幸存者1區(qū)域中

    2024年02月15日
    瀏覽(22)
  • JVM對(duì)象創(chuàng)建與內(nèi)存分配機(jī)制深度剖析

    JVM對(duì)象創(chuàng)建與內(nèi)存分配機(jī)制深度剖析

    (1)類(lèi)加載檢查 虛擬機(jī)遇到一條new指令時(shí),首先將去檢查這個(gè)指令的參數(shù)是否能在常量池中定位到一個(gè)類(lèi)的符號(hào)引用,并且檢查這個(gè)符號(hào)引用代表的類(lèi)是否已被加載、解析和初始化過(guò)。如果沒(méi)有,那必須先執(zhí)行相應(yīng)的類(lèi)加載過(guò)程; 所以所類(lèi)加載是 懶加載 ; new指令對(duì)應(yīng)到語(yǔ)

    2024年02月13日
    瀏覽(26)
  • JVM-java對(duì)象內(nèi)存分布(二)

    JVM-java對(duì)象內(nèi)存分布(二)

    目錄 一、棧針 二、java 對(duì)象內(nèi)存分布 1、那何為java內(nèi)存對(duì)象布局? 2、什么是jvm的內(nèi)存模型 1、如果我們新生代,一直創(chuàng)建新對(duì)象,此時(shí)我們新生代不夠用了怎么辦? 2、那么為什么大部分對(duì)象的生命周期比較短呢?這個(gè)結(jié)論哪來(lái)的呢? 3、那么為什么是這個(gè)8:1:1呢? 4、就是

    2024年02月11日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包