java應用開發(fā)之JVM運行時內(nèi)存分析
1.JVM的運行時內(nèi)存也叫JVM堆
從GC的角度可以將JVM分為新生代,老年代,永久代。其中新生代默認占1/3的堆內(nèi)存空間,老年代默認占2/3內(nèi)存空間,永久代占非常少的堆內(nèi)存空間方式。
而新生代分為Eden,SurvivorFrom,SurvivorTo區(qū),Eden默認占8/10新生代區(qū)域空間,SurviorFrom和SurviorTo則占1/10.
2.JVM新創(chuàng)建的對象
JVM新創(chuàng)建的對象,除了大對象外都會放在新生代中,由于JVM會頻繁創(chuàng)建對象,所以新生代會頻繁出發(fā)MinorGC進行垃圾回收。
3.新生代詳解
- Java新創(chuàng)建的對象先放在Eden區(qū),如是大對象則分配到老年區(qū)。
- Eden區(qū)內(nèi)存空間不足時則觸發(fā)GC對新生代進行一次垃圾回收
- SurviorTo保存上一次MinorGC的幸存者
- SuviorFrom將上一次MinorGC作為這一次的掃描對象
4.老年代詳解
老年代則不會頻繁出發(fā)MajorGC,當MinorGC過后仍然出現(xiàn)老年代空間不足,則會觸發(fā)MajorGC進行垃圾回收。MajorGC采用的是標記清除算法。因為要掃描老年代所有對象,所以耗時較長。
5.永久代
指的是內(nèi)存永久保存區(qū)域,主要存放Class和Meta(元數(shù)據(jù))。
以上就是java應用開發(fā)之JVM運行時內(nèi)存分析的詳細內(nèi)容,更多關于JVM運行時內(nèi)存的資料請關注腳本之家其它相關文章!
相關文章
詳解Spring Data JPA中Repository的接口查詢方法
repository代理有兩種方式從方法名中派生出特定存儲查詢:通過直接從方法名派生查詢和通過使用一個手動定義的查詢。本文將通過示例詳細講解Spring Data JPA中Repository的接口查詢方法,需要的可以參考一下2022-04-04IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架實現(xiàn)
本文主要介紹了IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-07-07java實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法
下面小編就為大家?guī)硪黄猨ava實現(xiàn)多線程的兩種方式繼承Thread類和實現(xiàn)Runnable接口的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09RestTemplate發(fā)送HTTP?GET請求使用方法詳解
這篇文章主要為大家介紹了關于RestTemplate發(fā)送HTTP?GET請求的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家<BR>33+多多進步2022-03-03