JVM(二):JVM分代


JVM分代

概念:JVM根據對象存活周期不同,把堆內存划分為幾塊。新生代、老年代、永久代。

分代原因:堆內存存放對象實例,是JVM管理的內存中最大一塊,也是垃圾回收最頻繁的一塊。分代是為了提高對象內存分配和垃圾回收的效率。

分代原則:

  新生代:新創建的對象。會被頻繁得GC(垃圾回收)。

      新生代分為三塊,Eden(占內存80%),From survivor(占內存10%),To survivor(占內存10%),原因是hotspot采用復制算法回收新生代,這樣可以充分利用內存空間,減少浪費。

      處理流程:

        1. 判斷該對象是否是大對象,大對象直接進入老年代

             2. 如果不是大對象,會存儲在Eden區。To survivor是空的

             3. 執行GC , Eden和From survivor區中存活下來的對象存在To survivor區

             4. From survivor和To survivor調換身份。這樣To survivor又是空的了。

      

  老年代:新創建的對象。經過了多次GC依然存活。不會頻繁做GC。

  永久代:靜態屬性、類信息。一般不做GC

示意圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM