真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中Jvm內(nèi)存劃分為幾部分

這篇文章主要介紹“Java中Jvm內(nèi)存劃分為幾部分”,在日常操作中,相信很多人在Java中Jvm內(nèi)存劃分為幾部分問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java中Jvm內(nèi)存劃分為幾部分”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

在Java開發(fā)中我們不用考慮對內(nèi)存的管理,是因?yàn)镴vm幫我們做了很多工作。Jvm為了滿足不同的用途將內(nèi)存大體劃分了下面幾部分。如下圖:

Java中Jvm內(nèi)存劃分為幾部分

下面我們詳細(xì)介紹一下每一塊的具體的功能。

  • 程序計(jì)數(shù)器:指的是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號指示器。也就是說它的作用是通過這個計(jì)數(shù)器的值來選擇執(zhí)行哪些字節(jié)碼指令的。我們知道在多任務(wù)的系統(tǒng)中雖然可以同時運(yùn)行很多程序,但運(yùn)行的本質(zhì)是CPU給不同的程序分配執(zhí)行時間來決定的。如果我們啟動了一個Java程序假如是單線程的,雖然程序啟動了但CPU此時卻可能執(zhí)行其它程序,那么在CPU重新執(zhí)行Java程序時,一定要知道這個程序上一次執(zhí)行到了哪里,然后好繼續(xù)這個指定往下執(zhí)行,這個計(jì)數(shù)器就是記錄程序的執(zhí)行行號的。只不過不同的是,這個計(jì)數(shù)器不是針對程序來說的,而是真對線程來說的,因?yàn)槊恳粋€線程可能執(zhí)行的邏輯是不一樣的,所以Jvm就要知道每一個線程在上一次的執(zhí)行位置。所以程序計(jì)數(shù)器,每一個線程都是獨(dú)立的。如果線程執(zhí)行的是一個Java方法,那么這個計(jì)數(shù)器 就記錄正在執(zhí)行的虛擬機(jī)的字節(jié)碼指令地址。如果執(zhí)行的方法是Native方法,那么這個計(jì)數(shù)器的值就為空。

  • 棧:主要存儲局部變量表、動態(tài)鏈接、方法出口等信息。并且棧也是每一個線程獨(dú)立存在的。

  • 堆:Jvm中管理內(nèi)存的最大的地方。它的作用是存儲對象的實(shí)例。我們可以通過設(shè)置-Xmx和-Xms控制堆大小。堆也是Jvm中垃圾回收器回收的主要地方。并且堆內(nèi)存是所有線程所共享的區(qū)域。

  • 方法區(qū):和堆一樣也是所有線程共享的內(nèi)存區(qū)域,不同是的是它主要存儲被虛擬機(jī)加載的類信息、常量、靜態(tài)變量等信息。

  • 運(yùn)行時常量池:常量池存放在方法區(qū)中,主要保存編譯時生成的字面量和符號引用。因?yàn)槌A砍卮娣旁诜椒▍^(qū)中,所以常量池也是對所有線程都共享的。

到此,關(guān)于“Java中Jvm內(nèi)存劃分為幾部分”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


當(dāng)前名稱:Java中Jvm內(nèi)存劃分為幾部分
當(dāng)前地址:http://weahome.cn/article/piihhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部