免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
jvm的內(nèi)存區(qū)域簡介

jvm在執(zhí)行java程序過程中會將管理的內(nèi)存劃分成若干不同的數(shù)據(jù)區(qū)域,他們分別是程序計數(shù)器,堆,方法區(qū),虛擬機棧,本地方法棧。

1.1程序計數(shù)器

指令計數(shù)器是線程私有的,每個線程都有獨立的指令計數(shù)器,計數(shù)器記錄著虛擬機正在執(zhí)行的字節(jié)碼的指令地址,分支,循環(huán),跳轉(zhuǎn),異常處理和線程恢復(fù)等操作都依賴這個計數(shù)器完成,如果線程執(zhí)行的native方法,則這個計數(shù)器為空。

1.2虛擬機棧

虛擬機棧是線程私有的,主要用于存放局部變量表,操作棧,動態(tài)鏈接,方法出口等信息,由于每個方法被執(zhí)行都會創(chuàng)建對應(yīng)的線幀,方法被調(diào)用到直至完成調(diào)用的過程,實際對應(yīng)線幀在操作棧中入棧和出棧的過程。在java虛擬機規(guī)范中,對這個區(qū)域規(guī)定了兩種異常情況:如果線程請求的棧深度大于規(guī)定的深度,則拋出StackOverFlowError異常;如果虛擬機棧的動態(tài)擴展到了無法申請的足夠內(nèi)存時候?qū)伋鯫utOfMemberError異常。

1.3本地方法棧

本地方法棧和虛擬棧的功能相似,包括上述2個異常情況也一樣,區(qū)別在于虛擬機棧是為虛擬機執(zhí)行的java服務(wù),而本地方法棧是為虛擬機使用的Native方法服務(wù)。

1.4堆

堆是內(nèi)存中最大的區(qū)域,并且它是所有線程共享的區(qū)域。它的唯一作用就是存放對象實例,根據(jù)jvm規(guī)范的規(guī)范,它的內(nèi)存空間可以使不連續(xù)的,只要在邏輯上連續(xù)的即可。

1.5 方法區(qū)

方法區(qū)和堆一樣,是被所有線程共享的運行時區(qū)域,它用于存放被虛擬機加載的累信息,常量,靜態(tài)變量,即時編譯后的代碼等數(shù)據(jù),跟堆的情況一樣,當方法區(qū)無法滿足內(nèi)存分配需求時,也會拋出OutOfMemberError的異常。

運行時常量池也屬于方法區(qū)的一部分。class文件除了有版本,字段,方法,接口等描述信息外,其中還有信息是常量池,用于存放編譯后的各種字面量和符號引用,這部分將在類加載后存放到方法區(qū)的常量池中。另外java語言并非要求常量一定一定在編譯期間產(chǎn)生,即是并非預(yù)置入的class文件常量池的內(nèi)存才能進入方法區(qū)的運行時常量池,運行期間同樣也能進入。

1.6直接內(nèi)存

直接內(nèi)存并不屬于虛擬機運行時的數(shù)據(jù)區(qū)的一部分, 也不是java虛擬機規(guī)范中定義的內(nèi)存區(qū)域,但這部分內(nèi)存被頻繁使用到,并且也會爆outofmemoryError異常。

在java jdk1.4中加入了NIO類,引入了基于通道(Channel)與緩沖區(qū)(Buffer)的I/O方式,它可以直接使用Native函數(shù)分配堆外的內(nèi)存,然后通過存儲在java堆中DirectByteBuffer對象作為這塊內(nèi)存的引用直接操作,這樣避免了java堆和Native堆來回復(fù)制的問題,提升了行性能。

2 對象訪問

java虛擬機規(guī)定了一個對象變量指向一個對象的引用,并沒有定義這個引用以何種方式去定位,以及訪問到j(luò)ava堆的具體位置,所以不同的虛擬機實現(xiàn)對象訪問的方式略有不同,大概主流的分為:句柄和直接指針。

使用句柄訪問方式,java堆會劃出一個內(nèi)存區(qū)域作為句柄池,對象的變量存儲的就是句柄池的地址,而句柄池中就存放了對象實例的數(shù)據(jù)以及對象類型信息的地址信息。若使用直接訪問方式,對象變量中存儲的直接是對象實例的數(shù)據(jù)以及對象類型信息的地址信息。

兩種訪問方式各有優(yōu)勢,句柄訪問的優(yōu)勢在于對象變量可存儲穩(wěn)定的地址,當對象移動時,只需改變句柄池的地址,變量本身無需修改。直接訪問的優(yōu)勢明顯在于訪問速度快,sun HotSpot就是采用第二種對象訪問方式。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
聽說又被 JVM 內(nèi)存區(qū)域方面的面試題給虐了?看看這篇文章吧!
JVM底層原理之運行時數(shù)據(jù)區(qū)
JVM內(nèi)存結(jié)構(gòu)
面試刷題24:介紹一枚 JAVA妹妹?
jvm學習筆記
Java虛擬機(JVM)面試題(2020最新版)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服