jvm虛擬機在運行時需要用到的記憶體區域.廣泛一點就是堆和棧,其實不然,堆和棧只是相對比較籠統的說法,真正區分有如下幾個 先上圖一: 總的就是 java的記憶體模型 記憶體模型又分堆記憶體(heap)和方法區(有時也稱為non-heap)和棧 堆又分新生代(Young)和老年代(old/Tenured) 新 ...
jvm虛擬機在運行時需要用到的記憶體區域.廣泛一點就是堆和棧,其實不然,堆和棧只是相對比較籠統的說法,真正區分有如下幾個 先上圖一:
總的就是 java的記憶體模型 記憶體模型又分堆記憶體(heap)和方法區(有時也稱為non-heap)和棧 堆又分新生代(Young)和老年代(old/Tenured) 新生代又分預設比例為8:1:1的eden空間、from survivor空間、to survivor空間 當進行垃圾回收時,eden、survivor from 存活得對象會複製到servivor to空間 接著from與to空間互換.(當from區的對象足夠老時,即標記的次數達到老年級別,便到老年代去) 記憶體的大小設置參數可以如下一張圖說明 -XMS:堆的最小空間 -XMX:堆的最大空間 -PermSize:方法區的最小空間 -MaxPermSize:方法區的最大空間 -Xss:每個線程的堆棧空間 -newSize:新生代最小空間 -maxNewSize:新生代最大空間 老年代記憶體可以通過設置堆的大寫和新生代的大小來控制 老年代記憶體=堆記憶體-新生代記憶體 棧