• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    Java面試之JVM復習(二)

    銜接上篇,這篇繼續介紹JVM的內存分布

    方式/步調

    1. 1

      虛擬機棧(線程私有)

    2. 2

      堆(Heap線程共享)運行時數據區

    3. 3

      方式區/永遠代(線程共享)

    4. 4

      java堆內存從GC的角度還可以細分為:新生代和老年月。下圖為堆內存的劃分

    5. 5

      新生代: 用來存放新生的對象。一般占有堆的1/3的空間。因為頻仍建立對象,所以新生代會頻仍的觸發minorGC進行垃圾收受接管。新生代又分為Eden 、Form

      survivor、To survivor三個區

      Eden 區:java新對象的出生地(若是新建立的對象占用內存很大,會直接分派到老年月)。當Eden 區內存不敷的時辰會觸發Minor GC,對新生代進行一次垃圾收受接管。

      Form survivor區 :上一次GC的幸存者,作為這一次GC的被掃描者。

      To survivor區:保留了一次Minor GC過程中的幸存者。

    6. 6

      老年月:本家兒要存放應用程序中生命周期長的內存對象。

      元數據區(元空間):在JAVA8中,永遠代已經被移除,被元空間所替代。元空間的素質和永遠代相似,元空間和永遠代之間的區別在于元空間不在虛擬機中,而是利用當地內存。是以,默認環境下,元空間的巨細僅受當地內存限制。

      類的元數據放入native memory,字符串池和類的靜態變量放入java堆中,這樣加載幾多類的元數據就不再由MaxPermSize節制,而由系統的現實可用空間來節制。

      END
    • 發表于 2020-04-30 19:00
    • 閱讀 ( 761 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆