最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java JVM內(nèi)存區(qū)域詳解

 更新時(shí)間:2021年11月02日 15:27:18   作者:聰明墨菲特  
下面小編就為大家?guī)硪黄趈vm java內(nèi)存區(qū)域的介紹。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

原網(wǎng)頁:JavaGuide

JVM在執(zhí)行Java程序過程中會(huì)把它管理的內(nèi)存劃分成若干個(gè)不同的數(shù)據(jù)區(qū)域。JDK1.8和之前的版本略有不同,下面會(huì)介紹到。

JDK1.8之前

JDK1.8之后:

這其中線程私有的:

  • 虛擬機(jī)棧;
  • 程序計(jì)數(shù)器;
  • 本地方法棧;

線程共享的:

  • 堆;
  • 方法區(qū);
  • 直接內(nèi)存(非運(yùn)行時(shí)數(shù)據(jù)區(qū)的一部分)

程序計(jì)數(shù)器

程序計(jì)數(shù)器是一塊較小的內(nèi)存空間,可以看作是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器。字節(jié)碼解釋器工作時(shí)通過改變這個(gè)計(jì)數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支、循環(huán)、跳轉(zhuǎn)、異常處理、線程恢復(fù)等功能都需要依賴這個(gè)計(jì)數(shù)器完成。

Java虛擬機(jī)棧

與程序計(jì)數(shù)器一樣,Java虛擬機(jī)棧也是線程私有的,它的生命周期和線程相同,描述的是Java方法執(zhí)行的內(nèi)存模型,每次方法調(diào)用的數(shù)據(jù)都是通過棧傳遞的。

Java內(nèi)存可以粗糙的分為堆內(nèi)存棧內(nèi)存,其中棧就是現(xiàn)在說的虛擬機(jī)棧,或者說是虛擬機(jī)棧中局部變量表部分。(實(shí)際上,Java虛擬機(jī)棧是由一個(gè)個(gè)棧幀組成,每個(gè)棧幀中都擁有:局部變量表、操作數(shù)幀、動(dòng)態(tài)鏈接、方法出口信息)。

局部變量表主要存放了編譯期可知的各種數(shù)據(jù)類型(boolean、byte、char、short、int、float、long、double)、對(duì)象引用(reference類型,它不同于對(duì)象本身,可能是一個(gè)指向?qū)ο蟮钠鹗嘉恢玫囊弥羔?,也可能是指向一個(gè)代表對(duì)象的句柄或其他于此對(duì)象相關(guān)的位置)。

方法/函數(shù)如何調(diào)用?

Java??梢灶惐葦?shù)據(jù)結(jié)構(gòu)中棧,Java棧中保存的主要內(nèi)容是棧幀,每一次函數(shù)調(diào)用都會(huì)有一個(gè)對(duì)應(yīng)的棧幀被壓入Java棧,每一個(gè)函數(shù)調(diào)用結(jié)束后,都會(huì)有一個(gè)棧幀被彈出。

Java方法有兩種返回方式:

1、return語句。

2、拋出異常。

不管哪種返回方式都會(huì)導(dǎo)致棧幀被彈出。

Java虛擬機(jī)所管理內(nèi)存中最大的一塊,Java堆是所有線程共享的一塊內(nèi)存區(qū)域,在虛擬機(jī)啟動(dòng)時(shí)創(chuàng)建。此內(nèi)存區(qū)域的唯一目的就是存放對(duì)象實(shí)例,幾乎所有的對(duì)象實(shí)例以及數(shù)組都在這里分配內(nèi)存。

Java世界中“幾乎”幾乎所有的對(duì)象都在堆中分配,但是隨著JTI編譯器的發(fā)展與逃逸分析技術(shù)逐漸成熟,棧上分配、標(biāo)量替換優(yōu)化技術(shù)將會(huì)導(dǎo)致一些微妙的變化,所有的對(duì)象都分配到對(duì)上也漸漸變得不那么“絕對(duì)”了。從JDK1.7開始已經(jīng)默認(rèn)開啟逃逸分析,如果某些方法中的對(duì)象引用沒有被返回或者未被外面使用(也就是未逃逸出去),那么對(duì)象可以直接在棧上分配內(nèi)存。

Java堆是垃圾收集器管理的主要區(qū)域,因此也被稱作GC堆。從垃圾回收的角度,由于現(xiàn)在收集器基本都采用分代垃圾收集算法,所以Java堆還可以細(xì)分為:新生代和老年代;進(jìn)一步細(xì)致一點(diǎn)還有:Eden空間、From Survivor、To Survivor空間等。進(jìn)一步劃分的目的是更好地回收內(nèi)存,或者更快地分配內(nèi)存。

在JDK7版本以及JDK7版本之前,堆內(nèi)存通常被分為以下三部分:

1、新生代內(nèi)存

2、老生代

3、永生代

JDK8版本之后,方法區(qū)被移除了,取而代之的是元空間,元空間使用的是直接內(nèi)存。

 大部分情況,對(duì)象都會(huì)首先在 Eden 區(qū)域分配,在一次新生代垃圾回收后,如果對(duì)象還存活,則會(huì)進(jìn)入 s0 或者 s1,并且對(duì)象的年齡還會(huì)加 1(Eden 區(qū)->Survivor 區(qū)后對(duì)象的初始年齡變?yōu)?1),當(dāng)它的年齡增加到一定程度(默認(rèn)為 15 歲),就會(huì)被晉升到老年代中。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • Java中的MessageFormat.format用法實(shí)例

    Java中的MessageFormat.format用法實(shí)例

    這篇文章主要介紹了Java中的MessageFormat.format用法實(shí)例,本文先是講解了MessageFormat的語法,然后給出了多個(gè)操作實(shí)例,需要的朋友可以參考下
    2015-06-06
  • 淺談springboot 屬性定義

    淺談springboot 屬性定義

    本篇文章主要介紹了淺談springboot 屬性定義,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • zookeeper服務(wù)優(yōu)化的一些建議

    zookeeper服務(wù)優(yōu)化的一些建議

    今天小編就為大家分享一篇關(guān)于zookeeper服務(wù)優(yōu)化的一些建議,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java對(duì)于目錄下文件的單詞查找操作代碼實(shí)現(xiàn)

    java對(duì)于目錄下文件的單詞查找操作代碼實(shí)現(xiàn)

    這篇文章主要介紹了java對(duì)于目錄下文件的單詞查找操作代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦)

    關(guān)于SpringBoot獲取IOC容器中注入的Bean(推薦)

    本文通過實(shí)例代碼給大家詳解了springboot獲取ioc容器中注入的bean問題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(53)

    Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(53)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-08-08
  • Java多線程中的Future類詳細(xì)解讀

    Java多線程中的Future類詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的Future類詳細(xì)解讀,Future表示一個(gè)可能還沒有完成的異步任務(wù)的結(jié)果,針對(duì)這個(gè)結(jié)果可以添加Callback以便在任務(wù)執(zhí)行成功或失敗后作出相應(yīng)的操作,需要的朋友可以參考下
    2023-11-11
  • java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解

    java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解

    今天小編就為大家分享一篇java 輸入3個(gè)數(shù)a,b,c,按大小順序輸出的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • SpringBoot中JPA更新時(shí)部分字段無效

    SpringBoot中JPA更新時(shí)部分字段無效

    本文主要介紹了SpringBoot中JPA更新時(shí)部分字段無效,在通過注解自動(dòng)更新時(shí),部分字段在調(diào)試時(shí)可以找到,卻沒有被自動(dòng)更新到數(shù)據(jù)庫中,下面就介紹一下解決方法
    2023-04-04
  • Spark Streaming編程初級(jí)實(shí)踐詳解

    Spark Streaming編程初級(jí)實(shí)踐詳解

    這篇文章主要為大家介紹了Spark Streaming編程初級(jí)實(shí)踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論

抚松县| 喜德县| 铜梁县| 禹州市| 自贡市| 文山县| 保亭| 锦州市| 阿尔山市| 大城县| 福海县| 西和县| 麻栗坡县| 册亨县| 兴业县| 蚌埠市| 沭阳县| 双江| 皋兰县| 河池市| 廊坊市| 汉源县| 康平县| 青神县| 二连浩特市| 荥阳市| 汽车| 金溪县| 八宿县| 霍林郭勒市| 青神县| 耿马| 沂源县| 改则县| 广灵县| 长海县| 烟台市| 耒阳市| 同仁县| 普兰店市| 广州市|