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

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

java之JVM的位置和體系結(jié)構(gòu)-創(chuàng)新互聯(lián)

JVM的概念:

JVM 即 Java Virtual Machine,中文名為 Java虛擬機(jī),一般情況下,對(duì)于C/C++ 程序,編譯成二進(jìn)制文件后,就可以直接執(zhí)行了,但Java 需要使用 javac 編譯成 .class 文件,還需要使用 Java 命令去主動(dòng)執(zhí)行它JVM 就是識(shí)別 .class 后綴的文件,并且能夠解析它的指令,最終調(diào)用操作系統(tǒng)上的函數(shù)

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比建始網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式建始網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋建始地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。JVM的位置:

java程序需要在jre這個(gè)特定的環(huán)境上運(yùn)行,而jre包含jvm,但jvm并不是java語(yǔ)言編寫(xiě)的,它是由C/C++開(kāi)發(fā)的。
在這里插入圖片描述

JVM體系結(jié)構(gòu) :
運(yùn)行時(shí)數(shù)據(jù)區(qū):類加載完成后進(jìn)入運(yùn)行時(shí)數(shù)據(jù)區(qū)[RuntimeData area],運(yùn)行時(shí)異常是不可捕獲的,這是在類加載器后的產(chǎn)物.

運(yùn)行時(shí)數(shù)據(jù)區(qū)里面就有(方法區(qū)(Method Area),java棧(stack),本地方法棧(native Method Stack),堆(heap) ,程序計(jì)數(shù)器(pc))

在這里插入圖片描述

為什么這里的棧,本地方法棧,程序計(jì)數(shù)器是不會(huì)有垃圾回收的?

原因如下:

Java運(yùn)行時(shí)內(nèi)存區(qū)有Java堆,方法區(qū),程序計(jì)數(shù)器,虛擬機(jī)棧,本地方法棧這五個(gè)地方,其中程序計(jì)數(shù)器,虛擬機(jī)棧和本地方法棧這三個(gè)地方隨線程而生,隨線程而滅,所以不需要考慮垃圾回收,而Java堆和方法區(qū)會(huì)伴隨著整個(gè)JVM的生命周期,所以有必要及時(shí)清理掉沒(méi)有的垃圾。

在這里插入圖片描述

java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)包含的名詞解釋: 方法區(qū):

方法區(qū)存儲(chǔ)虛擬機(jī)加載的類信息,常量,靜態(tài)變量,即時(shí)編譯器編譯后的代碼等數(shù)據(jù);是jvm規(guī)范中的一部分,并不是實(shí)際的實(shí)現(xiàn), 當(dāng)方法區(qū)無(wú)法滿足內(nèi)存分配需求時(shí),將拋出OutOfMemoryError(OOM)異常。

Java堆:

僅有一個(gè)堆,Java堆用于存放new出來(lái)的對(duì)象的內(nèi)容,是垃圾收集器管理的主要區(qū)域,如果在堆中沒(méi)有內(nèi)存完成實(shí)例分配,并且堆也無(wú)法再擴(kuò)展時(shí),將會(huì)拋出 OutOfMemoryError 異常。

Java虛擬機(jī)棧:

存放的東西:八大基本類型 + new出來(lái)的對(duì)象引用地址 + 實(shí)例方法的引用地址,每一條java虛擬機(jī)線程都有自己私有的java虛擬機(jī)棧,這個(gè)棧和線程同時(shí)創(chuàng)建,用于存儲(chǔ)棧幀Java虛擬機(jī)棧是Java方法執(zhí)行的內(nèi)存模型,每一個(gè)方法從調(diào)用直至執(zhí)行完成的過(guò)程,就對(duì)應(yīng)著一個(gè)棧幀在虛擬機(jī)棧中入棧到出棧的過(guò)程

棧幀(Stack Frame):存儲(chǔ)局部變量表,操作數(shù)棧,動(dòng)態(tài)鏈接,方法出口等信息,隨著方法的調(diào)用而創(chuàng)建,隨著方法的結(jié)束而銷毀。

在Java虛擬機(jī)規(guī)范中,對(duì)這個(gè)區(qū)域規(guī)定了兩種異常狀況:

1:如果線程請(qǐng)求的棧深度大于虛擬機(jī)所允許的深度,將拋出StackOverflowError  異常

2:如果虛擬機(jī)??梢詣?dòng)態(tài)擴(kuò)展(當(dāng)前大部分的Java虛擬機(jī)都可動(dòng)態(tài)擴(kuò)展,只不過(guò)Java虛擬機(jī)規(guī)范中也允許固定長(zhǎng)度的虛擬機(jī)棧),當(dāng)擴(kuò)展時(shí)無(wú)法申請(qǐng)到足夠的內(nèi)存時(shí)會(huì)拋出OutOfMemoryError異常。
本地方法棧:

本地方法棧和虛擬機(jī)棧非常相似,不同的是虛擬機(jī)棧服務(wù)的是[Java方法],而本地方法棧服務(wù)的是[Native方法]

程序計(jì)數(shù)器:
1:java虛擬機(jī)可以支持多個(gè)線程同時(shí)運(yùn)行,每個(gè)java虛擬機(jī)線程都有自己的程序計(jì)數(shù)器(PC寄存器)

2:在任一時(shí)刻,一個(gè)java虛擬機(jī)的線程,只會(huì)執(zhí)行一個(gè)方法的代碼,程序計(jì)數(shù)器記錄[當(dāng)前線程所執(zhí)行的Java字節(jié)碼的地址]

3:當(dāng)執(zhí)行的是Native方法時(shí),程序計(jì)數(shù)器為空,程序計(jì)數(shù)器是JVM規(guī)范中唯一一個(gè)沒(méi)有規(guī)定會(huì)導(dǎo)致OutOfMemory的區(qū)域。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


分享名稱:java之JVM的位置和體系結(jié)構(gòu)-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/cosshi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部