欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Java虛擬機(jī)結(jié)構(gòu)是怎么樣的

這篇文章給大家分享的是有關(guān)Java虛擬機(jī)結(jié)構(gòu)是怎么樣的的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

創(chuàng)新互聯(lián)擁有一支富有激情的企業(yè)網(wǎng)站制作團(tuán)隊(duì),在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)深耕10多年,專(zhuān)業(yè)且經(jīng)驗(yàn)豐富。10多年網(wǎng)站優(yōu)化營(yíng)銷(xiāo)經(jīng)驗(yàn),我們已為成百上千中小企業(yè)提供了成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)解決方案,按需制作網(wǎng)站,設(shè)計(jì)滿(mǎn)意,售后服務(wù)無(wú)憂(yōu)。所有客戶(hù)皆提供一年免費(fèi)網(wǎng)站維護(hù)!

一、JVM主要的結(jié)構(gòu)如下:

Java虛擬機(jī)結(jié)構(gòu)是怎么樣的

二、各個(gè)區(qū)域功能介紹

1)、方法區(qū)(Method Area):

        (1)用于存儲(chǔ)虛擬機(jī)加載的類(lèi)信息、常量、靜態(tài)變量等,是各個(gè)線程共享的內(nèi)存區(qū)域;

        (2)默認(rèn)最小值為16MB,最大值為64MB,可以通過(guò)-XX:PermSize 和 -XX:MaxPermSize 參數(shù)限制方法區(qū)的大??;

        (3)方法區(qū)中還有一部分是運(yùn)行時(shí)常量池,主要用來(lái)存儲(chǔ)編譯時(shí)生成的字面量和符號(hào)引用,常量也可以在運(yùn)行時(shí)產(chǎn)生,如String的intern方法;

        (4)和Java堆一樣不需要連續(xù)的內(nèi)存和可以選擇固定大小或可擴(kuò)展外,還可以選擇不實(shí)現(xiàn)垃圾收集。

2)、棧:

        (1)Java虛擬機(jī)棧是線程私有的,生命周期與線程相同。

        (2)每個(gè)方法被執(zhí)行的時(shí)候都同時(shí)創(chuàng)建一個(gè)棧幀(stack frame),用于存儲(chǔ)局部變量表,操作棧,動(dòng)態(tài)鏈接,方法出口等信息。每一個(gè)方法執(zhí)行完的過(guò)程就對(duì)應(yīng)棧幀在棧中進(jìn)入進(jìn)出的過(guò)程。棧幀由三部分組成:局部變量區(qū)、操作數(shù)棧、幀數(shù)據(jù)區(qū)。

        (3)JVM虛擬機(jī)棧中的局部變量表存儲(chǔ)了編譯期可知的各種基本數(shù)據(jù)類(lèi)型。局部變量表所需要的空間在編譯期就分配完成。

        (4)棧幀是方法運(yùn)行期的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)。

3)、本地方法棧(Native Method Stack):

        (1)本地方法棧為JVM虛擬機(jī)使用到的Native方法服務(wù)。

在HotSpot中并不區(qū)分虛擬機(jī)棧和本地方法棧

4)、堆(Heap):

        (1)Java虛擬機(jī)所管理的內(nèi)存中最大的一塊。

        (2)Java堆是所有線程共享的區(qū)域,在虛擬機(jī)啟動(dòng)時(shí)創(chuàng)建。

        (3)內(nèi)存區(qū)域的唯一目的就是存放對(duì)象實(shí)例,所有的對(duì)象實(shí)例以及數(shù)組都在堆上分配內(nèi)存。

        (4)Java堆是JVM垃圾回收機(jī)制主要管理的內(nèi)存區(qū)域,Java堆可以處于內(nèi)存上不連續(xù)的內(nèi)存空間。

5)、程序計(jì)數(shù)器:

        (1)一塊比較小的內(nèi)存空間,它的作用可以看做是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器

        (2)字節(jié)碼解釋器工作時(shí)就是通過(guò)改變這個(gè)計(jì)數(shù)器的值來(lái)選取下一條需要執(zhí)行的字節(jié)碼指令、分支,循環(huán)、跳轉(zhuǎn)、異常處理、線程恢復(fù)等都需要依賴(lài)程序計(jì)數(shù)器。

6)、運(yùn)行時(shí)常量池:

        (1)運(yùn)行時(shí)常量池是方法區(qū)的一部分。

        (2)Class文件中除了有類(lèi)的版本、字段、方法接口描述等信息外,還有一項(xiàng)信息是常量池,用于存放編譯期生成的各種字面量和符號(hào)引用,這部分內(nèi)容將在類(lèi)加載

        之后存放到方法區(qū)的運(yùn)行時(shí)常量池。

7)、直接內(nèi)存:

        由于Java引進(jìn)了NIO,引入了通道和緩沖區(qū)的IO方式,可以調(diào)用Native方法直接分配堆外內(nèi)存,這個(gè)堆外內(nèi)存就是本機(jī)內(nèi)存,不會(huì)影響堆內(nèi)存大小。

感謝各位的閱讀!關(guān)于“Java虛擬機(jī)結(jié)構(gòu)是怎么樣的”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

分享名稱(chēng):Java虛擬機(jī)結(jié)構(gòu)是怎么樣的
網(wǎng)站URL:http://chinadenli.net/article2/giococ.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、電子商務(wù)靜態(tài)網(wǎng)站、虛擬主機(jī)、響應(yīng)式網(wǎng)站域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(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)

外貿(mào)網(wǎng)站建設(shè)