• <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
      <ol id="mz5ne"></ol>
    1. <samp id="mz5ne"></samp>
      <mark id="mz5ne"></mark>

        <fieldset id="mz5ne"></fieldset>

        免费看又黄又无码的网站_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片_日本最新免费二区三区

        ×
        新網 > 虛擬主機 > 正文

        Java虛擬機堆棧

        • 作者:新網
        • 來源:新網
        • 瀏覽:100
        • 2018-05-15 14:35:32

        棧位于通用RAM中,但通過它的“堆棧指針”可以從處理器哪里獲得支持。堆棧指針若向下移動,則分配新的內存;若向上移動,則釋放那些內存。存儲讀取速度,僅次于寄存器。存放基本類型數(shù)據(jù)變量和對象、數(shù)組等引用類型的引用!

           棧位于通用RAM中,但通過它的“堆棧指針”可以從處理器哪里獲得支持。堆棧指針若向下移動,則分配新的內存;若向上移動,則釋放那些內存。存儲讀取速度,僅次于寄存器。存放基本類型數(shù)據(jù)變量和對象、數(shù)組等引用類型的引用!

        <div>  1.程序計數(shù)器
        1487903609904368.jpg
          程序計數(shù)器(Program Counter Register) 是一塊較小的內存空間,它可以看作是當前線程所執(zhí)行的字節(jié)碼的行號指示器。在虛擬機的概念模型里,字節(jié)碼解釋器工作時就是通過改變這個計數(shù)器的值來選取下一條執(zhí)行字節(jié)碼指令。
          每條線程都有一個獨立的程序計數(shù)器。
          如果執(zhí)行的是java方法,這個計數(shù)器記錄的是正在執(zhí)行的虛擬機字節(jié)碼指令地址。如果是native方法,計數(shù)器為空。此內存區(qū)域是唯一一個在java虛擬機規(guī)范中沒有規(guī)定任何OutOfMemoryError情況的區(qū)域。
          2.Java虛擬機棧
          同樣是線程私有,描述Java方法執(zhí)行的內存模型:每個方法在執(zhí)行的同時都會創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。一個方法對應一個棧幀。
          局部變量表存放了各種基本類型、對象引用和returnAddress類型(指向了一條字節(jié)碼指令地址)。其中64位長度long 和 double占兩個局部變量空間,其他只占一個。
          規(guī)定的異常情況有兩種:1.線程請求的棧的深度大于虛擬機所允許的深度,將拋出StackOverflowError異常;2.如果虛擬機可以動態(tài)擴展,如果擴展時無法申請到足夠的內存,就拋出OutOfMemoryError異常。
          3.本地方法棧
          和Java虛擬機棧很類似,不同的是本地方法棧為Native方法服務。
          4.Java堆
          是Java虛擬機所管理的內存中最大的一塊。由所有線程共享,在虛擬機啟動時創(chuàng)建。堆區(qū)唯一目的就是存放對象實例。
          堆中可細分為新生代和老年代,再細分可分為Eden空間、From Survivor空間、To Survivor空間。
          堆無法擴展時,拋出OutOfMemoryError異常
          5.方法區(qū)
          所有線程共享,存儲已被虛擬機加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù)。
          當方法區(qū)無法滿足內存分配需求時,拋出OutOfMemoryError
          6.運行時常量池
          它是方法區(qū)的一部分,Class文件中除了有類的版本、字段、方法、接口等描述信息外,還有一項是常量池(Const Pool Table),用于存放編譯期生成的各種字面量和符號引用。并非預置入Class文件中常量池的內容才進入方法運行時常量池,運行期間也可能將新的常量放入池中,這種特性被開發(fā)人員利用得比較多的便是String類的intern()方法。
          當方法區(qū)無法滿足內存分配需求時,拋出OutOfMemoryError
          7.直接內存
          并不是虛擬機運行時數(shù)據(jù)區(qū)的一部分,也不是Java虛擬機規(guī)范中定義的內存區(qū)域。
          JDK1.4加入了NIO,引入一種基于通道與緩沖區(qū)的I/O方式,它可以使用Native函數(shù)庫直接分配堆外內存,然后通過一個存儲在Java堆中的DirectByteBuffer對象作為這塊內存的引用進行操作。因為避免了在Java堆和Native堆中來回復制數(shù)據(jù),提高了性能。
          當各個內存區(qū)域總和大于物理內存限制,拋出OutOfMemoryError異常。

        上一篇:Java虛擬機堆棧

        下一篇:Java虛擬機堆棧

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

        免費咨詢獲取折扣

        Loading
        国产精品视频白浆免费视频_久久久高清国产免费观看_亚洲一区二区三区在线免费观看_免费欧洲美女a视频一级毛片
      1. <samp id="mz5ne"><acronym id="mz5ne"></acronym></samp>
          <ol id="mz5ne"></ol>
        1. <samp id="mz5ne"></samp>
          <mark id="mz5ne"></mark>

            <fieldset id="mz5ne"></fieldset>
            乳源| 罗平县| 琼海市| 清徐县| 宝应县| 成武县| 德阳市| 苏尼特右旗| 大新县| 营山县| 筠连县| 涪陵区| 南雄市| 璧山县| 荆州市| 霞浦县| 洱源县| 太湖县| 望城县| 唐山市| 桂林市| 科技| 大埔县| 汤阴县| 云龙县| 时尚| 泰宁县| 镇坪县| 武穴市| 吉水县| 玉溪市| 天气| 湘阴县| 杭锦后旗| 三都| 广宗县| 额敏县| 连平县| 喀什市| 庄浪县| 北宁市|