Java虛擬機(jī)--一段Java程序的生命史(三)

以上就是整個(gè)編譯的過(guò)程了小編接下來(lái)介紹類加載:編譯將程序編譯成字節(jié)碼之后下一步就是類加載到內(nèi)存的過(guò)程。

滿洲網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站設(shè)計(jì)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
類加載的過(guò)程是在虛擬機(jī)內(nèi)存的方法區(qū)進(jìn)行這地方涉及到虛擬機(jī)內(nèi)存。虛擬機(jī)內(nèi)存區(qū)域劃分為:程序計(jì)數(shù)器、棧、本地方法棧、堆、方法區(qū)(部分區(qū)域?yàn)檫\(yùn)行時(shí)常量池)、直接內(nèi)存。
程序計(jì)數(shù)器
程序計(jì)數(shù)器是一塊較小的內(nèi)存空間它可以看做是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器。在JVM概念模型中字節(jié)碼解釋器工作時(shí)就是通過(guò)改變這個(gè)計(jì)數(shù)器的值來(lái)選取下一條需要執(zhí)行的字節(jié)碼指令。
棧用于存儲(chǔ)局部變量表、操作數(shù)棧、動(dòng)態(tài)鏈接、方法出口等信息其中局部變量表存放了編譯期克制的各種基本數(shù)據(jù)類型、對(duì)象引用它與程序計(jì)數(shù)器一樣都是線程私有的。
本地方法棧
本地方法棧與上面介紹的虛擬機(jī)棧作用相似它們的區(qū)別不過(guò)是虛擬機(jī)棧為虛擬機(jī)執(zhí)行Java方法(字節(jié)碼)服務(wù),而本地方法棧則為虛擬機(jī)使用的Native方法服務(wù)甚至有的虛擬機(jī)會(huì)把這兩塊合二為一。
堆是JVM管理內(nèi)存的一塊它是被所有線程共享的一塊區(qū)域,它的唯一目的是存放對(duì)象實(shí)例幾乎所有的對(duì)象實(shí)例都在這里分配內(nèi)存這地方也是垃圾收集管理的主要區(qū)域,從內(nèi)存回收角度看現(xiàn)在垃圾收集器都采用分代收集算法,所以Java堆還可以進(jìn)一步細(xì)分:新生代和老年代、而新生代進(jìn)一步細(xì)分:Eden空間、FromSurvivor空間、To Survivor空間。為了效率考慮堆還可能劃分為多個(gè)線程私有的分配緩沖區(qū)(TLAB)無(wú)論如何劃分,都與存放內(nèi)容無(wú)關(guān)無(wú)論哪個(gè)區(qū)域存放的依然是對(duì)象實(shí)例它們存在的目的只是為了更好的回收和分配內(nèi)存而已。

文章名稱:Java虛擬機(jī)--一段Java程序的生命史(三)
鏈接分享:http://muchs.cn/article44/chcghe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、定制網(wǎng)站網(wǎng)站制作、搜索引擎優(yōu)化小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站