亚洲综合在线一区二区三区-日韩超碰人人爽人人做人人添-麻豆国产精品久久人妻-无码人妻丰满熟妇啪啪-天堂精品一区二区三区-99久久综合狠狠综合久久aⅴ

×

Java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-20 14:32:25

Java虛擬機(jī)運(yùn)行時(shí),本地方法棧和Java虛擬機(jī)棧的作用是相似的,他的數(shù)據(jù)區(qū)是怎么運(yùn)行的?感興趣的可以和小編一起往下看。

        Java虛擬機(jī)運(yùn)行時(shí),本地方法棧和Java虛擬機(jī)棧的作用是相似的,他的數(shù)據(jù)區(qū)是怎么運(yùn)行的?感興趣的可以和小編一起往下看。

330490-14091606193126(4).jpg

<div>  一、程序計(jì)數(shù)器
  每個(gè)Java虛擬機(jī)線程都有自己的程序計(jì)數(shù)器,用于存儲(chǔ)當(dāng)前正在執(zhí)行的虛擬機(jī)指令地址。如果當(dāng)前執(zhí)行的是native方法,那么程序計(jì)數(shù)器的值是undefined。
  因?yàn)镴ava虛擬機(jī)多線程是通過線程輪流切換并分配處理器執(zhí)行時(shí)間來實(shí)現(xiàn)的,想要線程切換后能恢復(fù)到正確的執(zhí)行位置,每條線程都必須私有一個(gè)程序計(jì)數(shù)器,來存儲(chǔ)當(dāng)前執(zhí)行的虛擬機(jī)指令地址。
  二、Java虛擬機(jī)棧
  Java虛擬機(jī)棧也是每個(gè)線程私有的,它存儲(chǔ)著棧幀數(shù)據(jù)。線程執(zhí)行過程中,每個(gè)方法從調(diào)用到返回都對(duì)應(yīng)著一個(gè)棧幀入棧到出棧的過程。如果程序中使用了遞歸,但是沒有遞歸出口,或者方法調(diào)用超過了所允許的最大深度,那么就會(huì)拋出StackOverflowError錯(cuò)誤,如果沒有超過最大深度,但是沒有足夠的內(nèi)存來創(chuàng)建棧幀,那么會(huì)拋出OutOfMemoryError錯(cuò)誤,這也是Java虛擬機(jī)規(guī)范中說明的兩種錯(cuò)誤。這里只是舉了兩個(gè)例子說明,引發(fā)錯(cuò)誤的可能還有其他方式。
  棧幀,棧幀存儲(chǔ)數(shù)據(jù)和部分結(jié)果,以及方法返回值和異常分發(fā)。每次調(diào)用方法的時(shí)候都會(huì)創(chuàng)建一個(gè)新的棧幀,方法退出時(shí)銷毀(無論異常還是正常返回)。棧幀是線程的虛擬機(jī)棧中分配的,每個(gè)棧幀都有一個(gè)局部變量數(shù)組,操作數(shù)棧以及對(duì)當(dāng)前類當(dāng)前方法的常量池的引用。
  三、Java堆
  堆是Java虛擬機(jī)最重要的內(nèi)存區(qū)域,堆是所有線程共享的區(qū)域,也是垃圾收集器管理的主要區(qū)域。主要目的是存放實(shí)例數(shù)據(jù)和數(shù)組的內(nèi)存。堆中又分為新生代、老年代、永久代(Java8以后就去掉了),新生代有分為Eden空間、s1和s2。分這么多區(qū)間是為了更好的管理內(nèi)存。關(guān)于各個(gè)區(qū)域分配的細(xì)節(jié)以后另起一篇文章解釋。以下參數(shù)可以指定各個(gè)空間的大小和比例:
  -Xms50M,設(shè)置最小堆內(nèi)存為50M
  -Xmx512M,設(shè)置最大堆內(nèi)存為512M
  -XX:NewSize=128m,設(shè)置新生代大小為128M
  -XX:MaxNewSize=128M,設(shè)置新生代最大大小為128M
  -XX:NewRatio=4,設(shè)置老年代和新生代的比例為4:1
  -XX:SurvivorRatio=4,設(shè)置Eden和一個(gè)s1空間的比例為4:1,那么Eden:s1:s2是4:1:1
  四、方法區(qū)(永久代)
  方法區(qū)是Java堆的一個(gè)邏輯部分,它存儲(chǔ)類結(jié)構(gòu)、運(yùn)行時(shí)常量池、字段和方法等數(shù)據(jù)。可以通過參數(shù)-XX:PermSize=256m來指定大小。在Java8以后,該區(qū)域已經(jīng)被移除了,替代的是元數(shù)據(jù)空間Metaspace。在Java8以及更新版本設(shè)置PermSize將會(huì)提示:ignoring option PermSize=20M; support was removed in 8.0。
  五、運(yùn)行時(shí)常量池
  運(yùn)行時(shí)常量池是方法區(qū)的一部分,它存儲(chǔ)從編譯已知的字面量和符號(hào)引用以及類版本、字段、方法、接口描述等信息。早期版本中,String.intern()會(huì)進(jìn)入常量池存放。Java8及以后,官方的虛擬機(jī)規(guī)范并沒有更改或者詳盡的解釋。有興趣的朋友可以留言討論。
  六、本地方法棧
本地方法棧和Java虛擬機(jī)棧的作用是相似的,他們的區(qū)別是,Java虛擬機(jī)棧是為Java方法服務(wù),本地方法棧是為native方法服務(wù)。官方虛擬機(jī)規(guī)范中并沒有強(qiáng)制本地方法棧中使用的語言、結(jié)構(gòu)進(jìn)行限制,不同的虛擬機(jī)可能有自己不同的實(shí)現(xiàn)。Sun的HotSpot虛擬機(jī)貌似是將本地方法棧和Java虛擬機(jī)棧合二為一了。
這就是小編介紹的幾個(gè)方法。

免責(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)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading
主站蜘蛛池模板: 少妇精品久久久一区二区三区| 无码无套少妇毛多69xxx| 熟妇人妻系列av无码一区二区| 国产欧美另类久久久精品图片| av一本久道久久波多野结衣| 美女黄18以下禁止观看| 中文字幕无码视频专区| 大胆gogo高清在线观看| 亚洲精品入口一区二区乱麻豆精品| 中文字幕av无码一区二区蜜芽三区 | 国产亚洲精品久久精品69| 成人国产亚洲精品a区天堂| 亚洲国产一区二区三区亚瑟| 久久久久久99av无码免费网站| av天堂永久资源网| 亚洲av无码成人精品区天堂| 久久久综合九色合综国产精品| 波多野结衣 黑人| 青青国产线免观| 国产亚洲精品aaaa片小说| 亚洲人成黄网站69影院| 内射精品无码中文字幕| av大片在线无码永久免费| 亚洲av中文无码字幕色最新| 欧美丰满熟妇bbb久久久| 一本无码字幕在线少妇| 人妻系列无码专区无码中出| 国产精品亚洲精品日韩己满十八小| 欧洲熟妇色 欧美| 性饥渴的农村熟妇| 中文无码精品a∨在线| 日韩精品一区二区三区中文不卡 | 成人无码一区二区三区网站| 国产精品特级露脸av毛片| 国产精品人妻一区二区三区四 | 精品国产成人一区二区| 亚洲国产成人精品无码区在线 | 波多野结衣av无码久久一区 | 色婷婷狠狠97成为人免费| 国产精品偷啪在线观看| 亚洲一区二区三区四区五区六 |