JVM執行時區域由哪幾部分組成?分別介紹一下
阿新 • • 發佈:2019-02-02
Java虛擬機器的執行時區域構成圖如下所示:
執行緒共享區域:Java堆:(1)Java堆是java虛擬機器所管理的記憶體中最大的一塊;(2)被所有執行緒共享區域,在虛擬機器啟動時建立,唯一目的存放物件例項;(3)堆區是gc的主要區域,通常情況下分為兩個區塊年輕代和年老代。更細一點年輕代又分為Eden區最要放新建立物件,From survivor 和 To survivor 儲存gc後倖存下的物件,預設情況下各自佔比 8:1:1。 進一步劃分的目的是為了更還的記憶體回收或者更快的記憶體分配;(4)會有異常OutOfMemoneyError;方法區:(1)被所有執行緒共享區域,用於存放已被虛擬機器載入的類資訊,常量,靜態變數等資料。被Java虛擬機器描述為堆的一個邏輯部分。習慣是也叫它永久代(僅僅是因為HotSpot虛擬機器選擇把GC分代收集擴充套件至方法區);