猛操女人-猛操网-咪咪爱毛片-米奇久久-91破处视频-91视频综合网

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁  >  IT問答庫  >  Java基礎(chǔ)知識

JVM模型的介紹一

發(fā)布:java培訓(xùn) 2022-03-16 09:54

JVM模型的介紹一

推薦答案

  Java培訓(xùn)班教程系列分享JVM模型的介紹Java內(nèi)存分配:JVM定義了若干個(gè)程序執(zhí)行期間使用的數(shù)據(jù)區(qū)域。這個(gè)區(qū)域里的一些數(shù)據(jù)在JVM啟動(dòng)的時(shí)候創(chuàng)建,在JVM退出的時(shí)候銷毀。而其他的數(shù)據(jù)依賴于每一個(gè)線程,在線程創(chuàng)建時(shí)創(chuàng)建,在線程退出時(shí)銷毀。

  Java按照內(nèi)存使用區(qū)域可以分為四個(gè)部分:堆、棧、方法區(qū)和程序計(jì)數(shù)器;其中棧又可以分為兩大部分:Java虛擬機(jī)棧和本地方法棧;下面我將通過自己的學(xué)習(xí)與別人總結(jié)的參考見解來介紹下jvm

圖片1

圖片1

  程序計(jì)數(shù)器

  程序計(jì)數(shù)器是一塊較小的內(nèi)存空間,它被用來記錄當(dāng)前指令執(zhí)行程序的位置,在內(nèi)部通過改變計(jì)數(shù)器的位置來確定下一條指令執(zhí)行程序的位置;

  我們知道Java多線程的實(shí)質(zhì)是通過線程輪流切換并分配處理執(zhí)行事件來實(shí)現(xiàn)的,而在任何一個(gè)確定的時(shí)刻,一個(gè)處理器只會執(zhí)行一個(gè)線程中的一條指令。為了能讓線程切換后仍然能恢復(fù)到原來的位置,每個(gè)線程都需要有一個(gè)獨(dú)立的程序計(jì)數(shù)器,他們之間互不影響,所以,程序計(jì)數(shù)器是線程私有的內(nèi)存區(qū)域

  如果一個(gè)線程正在執(zhí)行一個(gè)Java方法,那么程序計(jì)數(shù)器記錄的就是正在執(zhí)行的虛擬機(jī)字節(jié)碼指令的地址;如果正在執(zhí)行一個(gè)native方法,那么程序計(jì)數(shù)器的值就為空;

  程序計(jì)數(shù)器是唯一一個(gè)在Java虛擬機(jī)規(guī)范中沒有規(guī)定任何OutOfMemoryError情況的區(qū)域,在四個(gè)區(qū)域中只有它不會出現(xiàn)內(nèi)存溢出的情況

  棧之Java虛擬機(jī)棧

  Java虛擬機(jī)棧描述的是Java方法的內(nèi)存模型;每個(gè)方法在被執(zhí)行的同時(shí)都會創(chuàng)建一個(gè)Java虛擬機(jī)棧(棧幀),用于存儲局部變量表、操作棧、動(dòng)態(tài)鏈接和方法出口等信息,因此Java虛擬機(jī)棧也是線程私有的;

  類似于動(dòng)畫是由一棧一棧的棧幀切換產(chǎn)生的,程序的執(zhí)行也是由棧幀的切換產(chǎn)生的,只是這些棧幀中存放的是方法的局部變量、操作棧、動(dòng)態(tài)鏈接和方法出口等信息;每一個(gè)方法被調(diào)用直至執(zhí)行完成的過程,就是一個(gè)棧幀在虛擬機(jī)棧中從入棧到出棧的過程;

  對于執(zhí)行引擎來說,只有棧頂?shù)臈怯行У模Q為當(dāng)前棧幀,這個(gè)棧幀關(guān)聯(lián)的方法稱為當(dāng)前方法,執(zhí)行引擎所有的字節(jié)碼指令都值針對當(dāng)前棧幀進(jìn)行操作;

  通常我們所說的變量存儲在棧中是不嚴(yán)謹(jǐn)?shù)模?font face="Calibri">Java虛擬機(jī)棧中存放的是對應(yīng)方法的局部變量,而且這些局部變量存放在Java虛擬機(jī)中的局部變量表中;對于保存的局部變量分類:Java中的基本數(shù)據(jù)類型變量的值存放在局部變量表,而對于引用類型變量來說,局部變量表只會存放對象的引用,真正的值存放在堆中;

  Java虛擬機(jī)是使用局部變量表來完成參數(shù)值到參數(shù)變量表的傳遞過程的,系統(tǒng)不會為局部變量賦予初始值(對于實(shí)例變量和類變量都會賦予初始值)

  在Java虛擬機(jī)規(guī)范中,對Java虛擬機(jī)棧規(guī)定了兩種異常情況:如果線程請求的棧深度大于虛擬機(jī)所允許的深度,將拋出StackOverflowError 異常;如果虛擬機(jī)棧動(dòng)態(tài)擴(kuò)展時(shí)無法申請到足夠的內(nèi)存時(shí),會拋出OutOfMemoryError 異常

  以上就是小編介紹的"Java培訓(xùn)班分享的內(nèi)容,希望對大家有幫助,如有疑問還可以點(diǎn)擊進(jìn)入Java視頻教程進(jìn)行學(xué)習(xí)。

  Java培訓(xùn)班http://Java.qfedu.com/

最新問答資訊

01 unity用什么編程語言?unity學(xué)習(xí)難度大嗎

學(xué)習(xí) unity 語言
6020 人關(guān)注

02 python容易學(xué)嗎?學(xué)好python有什么好處?

學(xué)習(xí) python 工作 培訓(xùn)
5389 人關(guān)注

03 html是什么語言?html學(xué)習(xí)難嗎?

學(xué)習(xí) html 語言 可以
5062 人關(guān)注

04 c語言難學(xué)嗎?c語言學(xué)好要多久?

語言 技術(shù) 學(xué)習(xí)
4733 人關(guān)注

06 學(xué)好平面設(shè)計(jì)要多久?報(bào)速成班靠譜嗎?

平面 設(shè)計(jì) 學(xué)習(xí) 時(shí)間
4238 人關(guān)注

相關(guān)問題

Java培訓(xùn)班的課程一般都學(xué)習(xí)什么內(nèi)容

首先是Java技術(shù)的核心和基礎(chǔ)JavaSE,這一階段會接觸到Java基礎(chǔ)語...

學(xué)習(xí)Java有哪些技巧嗎

java作為最經(jīng)典的編程語言之一受到大家的喜愛,不止你我,很多人...

java程序員常用到的技術(shù)有哪些

操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)這些基礎(chǔ)知識,工作之后基本都忘的差不多了...

int和integer有哪些區(qū)別?

JVM模型的介紹二

JVM模型的介紹二,接著上一篇我們繼續(xù)來分享,棧之本地方法棧。 ...

JVM模型的介紹一

Java培訓(xùn)班教程系列分享JVM模型的介紹一,Java內(nèi)存分配:JVM定義...

測一測
你知道多少IT梗

主站蜘蛛池模板: 男人看片资源 | 成人国产在线不卡视频 | 六度国产福利午夜视频黄瓜视频 | 国产天天操 | 毛片大全在线 | 国产黄在线免费观看 | 日本免费全黄一级裸片视频 | 久久精品小视频 | 国产一区二区三区欧美 | 欧美日本中文 | 中国国产高清一级毛片 | 涩涩片影院 | 久草视频福利 | 狠狠色综合久久久久尤物 | 999久久久免费精品国产牛牛 | 一区二区三区四区精品视频 | 一级片手机在线 | 美女视频黄的免费视频网页 | 日本三级s级在线播放 | 亚洲成人精品在线 | 国产卡1卡2卡三卡在线 | 日本三级全黄三级a | 亚洲国产欧美在线观看 | 偷偷要色偷偷 | 欧美又黄又嫩大片a级 | 手机小视频在线观看 | 欧美99热| 92看片淫黄大片看国产片 | 免费一看一级毛片人 | 殴美一级 | 欧美精品在线免费观看 | 中文字幕二区三区 | 欧美大胆性生话 | 99久久99视频 | 国产在线一二三区 | 国产精品久久久久乳精品爆 | 4k岛国精品午夜高清在线观看 | 欧美午夜剧场 | 91亚洲免费视频 | 日韩大片| 在线观看欧美日韩 |