亚洲综合极品香蕉久久网,久久夜精品综合缴情五月 ,亚洲动漫成人一区二区,国产在线不卡视频,国产丝袜精品不卡,亚洲乱码日产精品bd,久久久久久国产精品免费网站,亚洲综合av一区二区三区
×

java 虛擬機(JVM)相關(guān)概念

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-28 17:04:02

JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。

   Cg-4WlF3dLOIDjUFAABnUTDMXp8AAIC5AFUcnUAAGdp172.jpg

<div>  JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。
  Java語言的一個非常重要的特點就是與平臺的無關(guān)性。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用Java虛擬機屏蔽了與具體平臺相關(guān)的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行。這就是Java的能夠"一次編譯,到處運行"的原因。
  JVM是java的核心和基礎(chǔ),在java編譯器和os平臺之間的虛擬處理器。它是一種基于下層的操作系統(tǒng)和硬件平臺并利用軟件方法來實現(xiàn)的抽象的計算機,可以在上面執(zhí)行java的字節(jié)碼程序。
  Android的虛擬機是根據(jù)移動設(shè)備的特點基于Java虛擬機(JVM)改進(jìn)而來,雖然沒有保留規(guī)范,但作為Java語言的使用者,了解一下JVM的規(guī)范還是有必要的。
  VM在執(zhí)行Java程序時,會把它管理的內(nèi)存劃分為若干個的區(qū)域,每個區(qū)域都有自己的用途和創(chuàng)建銷毀時間。如下圖所示,可以分為兩大部分,線程私有區(qū)和共享區(qū):
  線程私有區(qū)
  程序計數(shù)器。當(dāng)同時進(jìn)行的線程數(shù)超過CPU數(shù)或其內(nèi)核數(shù)時,就要通過時間片輪詢分派CPU的時間資源,不免發(fā)生線程切換。這時,每個線程就需要一個屬于自己的計數(shù)器來記錄下一條要運行的指令。如果將是Java方法,則記錄執(zhí)行的字節(jié)碼地址;是本地方法,則計數(shù)器為空。
  虛擬機棧,與線程同時創(chuàng)建。每個方法執(zhí)行時都會創(chuàng)建一個棧幀來存儲方法的信息,新調(diào)用的方法入棧,返回的出棧,所以棧的大小決定方法調(diào)用的可達(dá)深度。若需要的棧深度大于可用深度時,則StackOverflowError;若棧進(jìn)行擴(kuò)展,但內(nèi)存不夠時,OutOfMemoryError。
  本地方法棧,與虛擬機棧作用相似。但它不是為Java方法服務(wù)的,而是本地方法(C語言)。由于規(guī)范對這塊沒有強制要求,不同虛擬機實現(xiàn)方法不同。
  2.2.線程共享區(qū)
  此區(qū)域是用來存儲被各線程共享的數(shù)據(jù)的。
  方法區(qū),用于存放加載類的元數(shù)據(jù)信息,如常量、靜態(tài)變量和即時編譯器編譯后的代碼。若要分代,算是永久代,以前類大多“static”的,很少被卸載或收集,現(xiàn)回收廢棄常量和無用的類。其中運行時常量池存放編譯生成的各種常量。
  堆,存放對象實例和數(shù)組,是垃圾回收的主要區(qū)域,分為新生代和老年代。剛創(chuàng)建的對象在新生代的Eden區(qū)中,經(jīng)過GC后進(jìn)入新生代的S0區(qū)中,再經(jīng)過GC進(jìn)入新生代的S1區(qū)中,15次GC后仍存在就進(jìn)入老年代。這是按照一種回收機制進(jìn)行劃分的,不是固定的。若堆的空間不夠?qū)嵗峙洌瑒tOutOfMemoryError。
  棧是運行時單位,代表著邏輯,內(nèi)含基本數(shù)據(jù)類型和堆中對象引用,所在區(qū)域連續(xù),沒有碎片;堆是存儲單位,代表著數(shù)據(jù),可被多個棧共享(包括成員中基本數(shù)據(jù)類型、引用和引用對象),所在區(qū)域不連續(xù),會有碎片。
  JVM內(nèi)存結(jié)構(gòu)主要有三大塊:堆內(nèi)存、方法區(qū)和棧。堆內(nèi)存是JVM中最大的一塊由年輕代和老年代組成,而年輕代內(nèi)存又被分成三部分,Eden空間、FromSurvivor空間、To Survivor空間,默認(rèn)情況下年輕代按照8:1:1的比例來分配;
方法區(qū)存儲類信息、常量、靜態(tài)變量等數(shù)據(jù),是線程共享的區(qū)域,為與Java堆區(qū)分,方法區(qū)還有一個別名Non-Heap(非堆);棧又分為java虛擬機棧和本地方法棧主要用于方法的執(zhí)行。
就說到這里,大家可以留言交流。

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 97久久超碰成人精品网页| 天天爽夜夜爽人人爽qc| 日韩精品无码区免费专区| 免费国产裸体美女视频全黄 | 国产在线精品视频免费观看| 亚在线观看免费视频入口| 精品国产免费观看久久久| 亚洲手机在线人成网站| 亚洲精品久久久无码一区二区| 婷婷五月六月综合缴情| 日本工口里番无遮█彩色| 国产精品区一区第一页| 四虎国产精品一区二区| 色噜噜久久综合伊人一本| 亚洲毛片无码专区亚洲a片| 国产乱码卡一卡2卡三卡四| 免费人成在线观看视频高潮| 亚洲成av人片在线观看wv| 碰超免费人妻中文字幕| 免费国产裸体美女视频全黄 | 亚洲a∨天堂男人无码| 国产av麻豆天堂亚洲国产av刚刚碰 | 国产在线无码精品电影网| 热99re久久精品| 久久久综合亚洲色一区二区三区 | 国产免费午夜福利不卡片在线| 欧洲女人牲交性开放视频 | 欧美尺码专线欧洲b1b1| 加勒比人妻av无码不卡| 亚洲国内精品av五月天| 97国产超碰一区二区三区| 人人妻人人爽人人狠狠| 8x福利精品第一导航| 无码av人片在线观看天堂| 国产午夜无码片在线观看影视| 在线观看肉片av网站免费| 野花社区视频www官网| 少妇无码太爽了在线播放| 午夜理论电影在线观看亚洲| 日本免费一区二区三区日本| 天天爱天天做天天做天天吃中文|