java應(yīng)用開(kāi)發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析
1.JVM的運(yùn)行時(shí)內(nèi)存也叫JVM堆
從GC的角度可以將JVM分為新生代,老年代,永久代。其中新生代默認(rèn)占1/3的堆內(nèi)存空間,老年代默認(rèn)占2/3內(nèi)存空間,永久代占非常少的堆內(nèi)存空間方式。
而新生代分為Eden,SurvivorFrom,SurvivorTo區(qū),Eden默認(rèn)占8/10新生代區(qū)域空間,SurviorFrom和SurviorTo則占1/10.

2.JVM新創(chuàng)建的對(duì)象
JVM新創(chuàng)建的對(duì)象,除了大對(duì)象外都會(huì)放在新生代中,由于JVM會(huì)頻繁創(chuàng)建對(duì)象,所以新生代會(huì)頻繁出發(fā)MinorGC進(jìn)行垃圾回收。
3.新生代詳解
- Java新創(chuàng)建的對(duì)象先放在Eden區(qū),如是大對(duì)象則分配到老年區(qū)。
- Eden區(qū)內(nèi)存空間不足時(shí)則觸發(fā)GC對(duì)新生代進(jìn)行一次垃圾回收
- SurviorTo保存上一次MinorGC的幸存者
- SuviorFrom將上一次MinorGC作為這一次的掃描對(duì)象
4.老年代詳解
老年代則不會(huì)頻繁出發(fā)MajorGC,當(dāng)MinorGC過(guò)后仍然出現(xiàn)老年代空間不足,則會(huì)觸發(fā)MajorGC進(jìn)行垃圾回收。MajorGC采用的是標(biāo)記清除算法。因?yàn)橐獟呙枥夏甏袑?duì)象,所以耗時(shí)較長(zhǎng)。
5.永久代
指的是內(nèi)存永久保存區(qū)域,主要存放Class和Meta(元數(shù)據(jù))。
以上就是java應(yīng)用開(kāi)發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析的詳細(xì)內(nèi)容,更多關(guān)于JVM運(yùn)行時(shí)內(nèi)存的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java語(yǔ)言獲取TCP流的實(shí)現(xiàn)步驟
使用Wireshark分析網(wǎng)絡(luò)包時(shí),一個(gè)很常用的功能就是選中一個(gè)TCP報(bào)文,然后查看這個(gè)TCP報(bào)文的TCP流,從而可以進(jìn)一步分析建連是否慢了,斷連是否正常等情況,那么本文就TCP流的概念以及在Java中如何獲取,做一個(gè)簡(jiǎn)單的學(xué)習(xí),需要的朋友可以參考下2023-11-11
springboot+vue實(shí)現(xiàn)頁(yè)面下載文件
這篇文章主要為大家詳細(xì)介紹了springboot+vue實(shí)現(xiàn)頁(yè)面下載文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
詳解Spring Data JPA中Repository的接口查詢方法
repository代理有兩種方式從方法名中派生出特定存儲(chǔ)查詢:通過(guò)直接從方法名派生查詢和通過(guò)使用一個(gè)手動(dòng)定義的查詢。本文將通過(guò)示例詳細(xì)講解Spring Data JPA中Repository的接口查詢方法,需要的可以參考一下2022-04-04
IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架實(shí)現(xiàn)
本文主要介紹了IDEA2023 Maven3.9.1+Tomcat10.1.8配置并搭建Servlet5.0的框架實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Java并發(fā)中線程封閉知識(shí)點(diǎn)詳解
在本篇文章里我們給大家整理了關(guān)于Java并發(fā)中線程封閉的知識(shí)點(diǎn)總結(jié)內(nèi)容,需要的朋友們學(xué)習(xí)參考下。2019-07-07
java實(shí)現(xiàn)多線程的兩種方式繼承Thread類和實(shí)現(xiàn)Runnable接口的方法
下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)多線程的兩種方式繼承Thread類和實(shí)現(xiàn)Runnable接口的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
如何將java或javaweb項(xiàng)目打包為jar包或war包
本文主要介紹了如何將java或javaweb項(xiàng)目打包為jar包或war包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
RestTemplate發(fā)送HTTP?GET請(qǐng)求使用方法詳解
這篇文章主要為大家介紹了關(guān)于RestTemplate發(fā)送HTTP?GET請(qǐng)求的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家<BR>33+多多進(jìn)步2022-03-03

