在上一篇中我們講了JVM的類加載子系統(tǒng),現(xiàn)在我們就來到了運行時數(shù)據(jù)區(qū)。而不同版本的JVM對于內(nèi)存的劃分方式和管理機制存在著部分差異(最典型的就是方法區(qū)實現(xiàn)的差異),本文針對經(jīng)典的Hotspot jvm進行討論,對運行時數(shù)據(jù)區(qū)做一個總體的概述
創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團隊,在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕十多年,專業(yè)且經(jīng)驗豐富。十多年網(wǎng)站優(yōu)化營銷經(jīng)驗,我們已為超過千家中小企業(yè)提供了網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)解決方案,定制網(wǎng)站制作,設(shè)計滿意,售后服務(wù)無憂。所有客戶皆提供一年免費網(wǎng)站維護!
一個JVM進程中只有一個Runtime實例,即運行時環(huán)境,就相當(dāng)于運行時數(shù)據(jù)區(qū)。其中
方法區(qū)和堆:是線程共享的區(qū)域,整個運行時數(shù)據(jù)區(qū)中只有一份。垃圾回收主要針對的區(qū)域就是堆空間,其次是方法區(qū)
程序計數(shù)器、本地方法棧和虛擬機棧:是每個線程都有一份,是各個線程私有的,
方法區(qū):存儲類信息。
堆:存儲所有對象的區(qū)域,是垃圾回收的主要工作區(qū)域。
直接內(nèi)存:非jvm內(nèi)存的堆外內(nèi)存,NIO操作時會用到
程序計數(shù)器:存儲線程中要執(zhí)行的下一條指令的地址,如果下一條是本機方法,則pc寄存器中的值將未定義。jvm中唯一不會產(chǎn)生內(nèi)存溢出的地方。
Java虛擬機棧:當(dāng)Java中方法執(zhí)行時,會形成一個棧幀壓入棧中,棧幀中包括局部變量表、操作數(shù)棧和方法出口等,方法執(zhí)行完畢則彈出棧。
本地方法棧:和Java虛擬機棧相似,這是調(diào)用本地Native方法形成的棧。
JVM的系統(tǒng)線程主要分為以下幾種,其中GC線程就是典型的守護線程
后文將再對JVM內(nèi)存中的五個區(qū)域進行詳述
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧