大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 IT培訓(xùn) IT培訓(xùn)課程學(xué)習(xí)之JVM內(nèi)存區(qū)域

IT培訓(xùn)課程學(xué)習(xí)之JVM內(nèi)存區(qū)域

更新時(shí)間:2020-07-22 10:18:59 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2535次

1、內(nèi)存區(qū)域的劃分

通常可以把JVM內(nèi)存區(qū)域分為下面幾個(gè)方面,其中,有的區(qū)域是以線程為單位,而有的區(qū)域則是整個(gè)JVM進(jìn)程唯一的。

(1)程序計(jì)數(shù)器。在JVM規(guī)范中,每個(gè)線程都有它自己的程序計(jì)數(shù)器,并且任何時(shí)間一個(gè)線程都只有一個(gè)方法在執(zhí)行,也就是所謂的當(dāng)前方法。程序計(jì)數(shù)器會(huì)存儲(chǔ)當(dāng)前線程正在執(zhí)行的Java方法的JVM指令地址;或者,如果是在執(zhí)行本地方法,則是未指定值。

(2)Java虛擬機(jī),早期也叫Java棧。每個(gè)線程在創(chuàng)建時(shí)都會(huì)創(chuàng)建一個(gè)虛擬機(jī)棧,其內(nèi)部保存一個(gè)個(gè)的棧幀,對(duì)應(yīng)著一次次的Java方法調(diào)用。前面談程序計(jì)數(shù)器時(shí),提到了當(dāng)前方法;同理,在一個(gè)時(shí)間點(diǎn),對(duì)應(yīng)的只會(huì)有一個(gè)活動(dòng)的棧幀,通常叫做當(dāng)前幀,方法所在的類(lèi)叫做當(dāng)前類(lèi)。如果在該方法中調(diào)用了其他方法,對(duì)應(yīng)的新的棧幀會(huì)被創(chuàng)建出來(lái),成為新的當(dāng)前幀,一直到它返回結(jié)果或者執(zhí)行結(jié)束。JVM直接對(duì)Java棧的操作只有兩個(gè),就是對(duì)棧幀的壓棧和出棧。棧幀中存儲(chǔ)著局部變量表,操作數(shù)棧,動(dòng)態(tài)鏈接,方法正常退出或者異常退出的定義等。

(3)堆,它是Java內(nèi)存管理的核心區(qū)域,用來(lái)放置Java對(duì)象實(shí)例,幾乎所有創(chuàng)建的Java對(duì)象實(shí)例都是被直接分配在堆上。堆被所有的線程共享,在虛擬機(jī)啟動(dòng)時(shí),我們指定的“Xmx”之類(lèi)參數(shù)就是用來(lái)指定最大堆空間等指標(biāo)。理所當(dāng)然,堆也是垃圾收集器重點(diǎn)照顧的區(qū)域,所以堆空間還會(huì)被不同的垃圾收集器進(jìn)行進(jìn)一步的細(xì)分,最有名的就是新生代,老年代的劃分。

(4)方法區(qū),這是所有線程共享的一塊內(nèi)存區(qū)域,用于存儲(chǔ)所謂的元數(shù)據(jù),例如類(lèi)結(jié)構(gòu)信息,以及對(duì)應(yīng)的運(yùn)行時(shí)常量池,字段,方法代碼等。由于早期的Hotspot JVM實(shí)現(xiàn),很多人習(xí)慣將方法區(qū)稱(chēng)為永久代。Oracle JDK 8中將永久代移除,同時(shí)增加了元數(shù)據(jù)區(qū)。

(5)運(yùn)行時(shí)常量池,這是方法區(qū)的一部分。如果仔細(xì)分析過(guò)反編譯的類(lèi)文件結(jié)構(gòu),你能看到版本號(hào),字段,方法,超類(lèi),接口等各種信息,還有一項(xiàng)信息就是常量池。Java的常量池可以存放各種常量信息,不管是編譯期生成的各種字面量,還是需要愛(ài)運(yùn)行時(shí)決定的符號(hào)引用,所以它比一般語(yǔ)言的符號(hào)表存儲(chǔ)的信息更加寬泛。

(6)本地方法棧,它和Java虛擬機(jī)是非常相似的,支持對(duì)本地方法的調(diào)用,也是每個(gè)線程都會(huì)創(chuàng)建一個(gè)。在Oracle Hotspot JVM中,本地方法棧和Java虛擬機(jī)棧是在同一塊區(qū)域,這完全取決于技術(shù)實(shí)現(xiàn)的決定,并未在規(guī)范中強(qiáng)制。

2、運(yùn)行數(shù)據(jù)區(qū)

我們將類(lèi)加載入方法區(qū)的時(shí)候,就已經(jīng)開(kāi)始使用運(yùn)行時(shí)數(shù)據(jù)區(qū)了。每個(gè)部分各司其職經(jīng)典的運(yùn)行時(shí)數(shù)據(jù)區(qū),一共包含五個(gè)部分,如下圖:

IT培訓(xùn)課程學(xué)習(xí)之JVM內(nèi)存區(qū)域

3、生命周期

程序啟動(dòng)產(chǎn)生進(jìn)程,一個(gè)虛擬機(jī)對(duì)應(yīng)一個(gè)進(jìn)程,其中(綠色):方法區(qū)和堆跟進(jìn)程的生命周期是一致的。隨著虛擬機(jī)啟動(dòng)而創(chuàng)建,隨著虛擬機(jī)退出而銷(xiāo)毀。另外(藍(lán)色):程序計(jì)數(shù)器,本地方法棧,虛擬機(jī)棧,是與線程一一對(duì)應(yīng)的。與線程對(duì)應(yīng)的數(shù)據(jù)區(qū)域會(huì)隨著線程開(kāi)始和結(jié)束而創(chuàng)建和銷(xiāo)毀。

1個(gè)運(yùn)行的程序-->1個(gè)進(jìn)程--->假設(shè)里面4個(gè)線程:那里面就有4組程序計(jì)數(shù)器,本地方法棧,虛擬機(jī)棧,而這4組程序計(jì)數(shù)器,本地方法棧,虛擬機(jī)棧公用方法區(qū)和堆空間。所以圖我們可以畫(huà)為:

IT培訓(xùn)課程學(xué)習(xí)之JVM內(nèi)存區(qū)域

4、了解JVM內(nèi)存的方法

(1)可以使用綜合性的圖形化工具,如JConsole,VisualVM(注意,從Oracle JDK 9開(kāi)始,VisualVM已經(jīng)不再包含在JDK安裝包中)等。這些工具具體使用起來(lái)比較直觀,直接連接到Java進(jìn)程,然后就可以在圖形化界面里掌握內(nèi)存使用情況。以JConsole為例,其內(nèi)存頁(yè)面可以顯示常見(jiàn)的堆內(nèi)存和各種堆外部分使用狀態(tài)。

(2)使用命令行工具進(jìn)行運(yùn)行時(shí)查詢,如jstat和jmap等工具都提供了一些選項(xiàng),可以查看堆,方法區(qū)等使用數(shù)據(jù)。

(3)使用jmap等提供的命令,生成堆轉(zhuǎn)儲(chǔ)文件,然后利用jhat或者Eclipse MAT等堆轉(zhuǎn)儲(chǔ)分析工具進(jìn)行詳細(xì)分析。

(4)GC日志等輸出,也包含著豐富的信息。

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“IT培訓(xùn)課程學(xué)習(xí)之JVM內(nèi)存區(qū)域”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 青青青国产免费全部免费观看 | 日本一级特黄a大片在线 | 49xxx中国妇女内谢视频 | www性欧美 | 天天操网站 | 亚洲精品亚洲九十七页 | 66精品综合久久久久久久 | 国产福利视频在线观看 | 激情综合五月亚洲婷婷 | 最新亚洲情黄在线网站 | 久久草在线观看 | 国产在线视频www色 国产在线视频凹凸分类 | 久青草国产手机视频免费观看 | 国产精品天干天干 | 天天操欧美 | 国产精品亚洲午夜不卡 | 欧美午夜在线播放 | 国产第一区二区三区在线观看 | 中国xxxwww| 欧美二区三区 | 四虎影视永久在线精品免费 | 不卡国产视频 | 特大一级aaaaa毛片 | 久久亚洲视频 | 欧美日韩在线观看区一二 | 综合色中色 | 国产精品一区在线观看 | 国产精品嫩草影院奶水 | 久久99这里只有精品国产 | 欧美日韩亚毛片免费观看 | 久久精品香蕉 | 91成人免费在线视频 | 国自产拍在线天天更新2019 | 国产欧美日韩综合精品一区二区 | 亚洲悠悠色综合中文字幕 | 99久久免费精品高清特色大片 | 香蕉伊人久久 | 日韩欧美在线一级一中文字暮 | 中文国产成人精品久久无广告 | 久久咪咪爱 | 亚洲欧美中文字幕高清在线一 |